android – 何时检查移动应用程序中的Internet连接

我想知道在移动应用程序中检查互联网连接的推荐和最佳做法.

在我与团队成员开发的大多数应用程序中,我们会在需要互联网连接的任何操作之前检查互联网连接.但我看到许多应用程序通知何时设备与Internet断开连接.

我希望能够清楚地了解这个主题,我相信很多像我这样的开发人员在开发应用程序时如何正确地进行检查时会犹豫不决.

任何帮助或想法将不胜感激.

解决方法:

您可以使用广播接收器来处理wifi更改.

接收代码

private broadcastReceiver WifiStateChangedReceiver = new broadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {

        int extraWifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,
                WifiManager.WIFI_STATE_UNKNowN);

        switch (extraWifiState) {
            case WifiManager.WIFI_STATE_disABLED: {
                handler.sendEmptyMessage(DATA_disCONNECTED);
            }
            break;
            case WifiManager.WIFI_STATE_disABLING: {
            }
            break;
            case WifiManager.WIFI_STATE_ENABLED: {
                handler.sendEmptyMessage(DATA_CONNECTED);
            }
            break;
            case WifiManager.WIFI_STATE_ENABLING: {
            }
            break;
            case WifiManager.WIFI_STATE_UNKNowN: {
            }
            break;
        }
    }
};

注册接收者:

this.registerReceiver(this.WifiStateChangedReceiver,
            new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION));

检查移动数据连接更改您可以使用TelephonyManager:

PhonestateListener pslCell = new PhonestateListener() {
        @Override
        public void onDataConnectionStateChanged(int state) {
            switch (state) {
                case TelephonyManager.DATA_disCONNECTED: {
                    handler.sendEmptyMessage(DATA_disCONNECTED);
                }
                break;
                case TelephonyManager.DATA_SUSPENDED: {
                    handler.sendEmptyMessage(DATA_CONNECTED);
                }
                break;
            }
        }
    };

    telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
    telephonyManager.listen(pslCell, PhonestateListener.LISTEN_DATA_CONNECTION_STATE);

我建议您将网络状态存储在静态变量中.您还需要检查每个应用程序启动时的网络状态.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...