我想知道在移动应用程序中检查互联网连接的推荐和最佳做法.
在我与团队成员开发的大多数应用程序中,我们会在需要互联网连接的任何操作之前检查互联网连接.但我看到许多应用程序通知何时设备与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);
我建议您将网络状态存储在静态变量中.您还需要检查每个应用程序启动时的网络状态.