所以我在应用程序中调用了一些不同的web服务,但我想在调用服务之前检查设备是否能够连接到互联网。
首先,我创建了一个静态Flag。
public static bool IsOfflineMode = false;
在调用每个服务之前,我添加以下内容:
if(IsOfflineMode) {
return;
}
这就是我检查设备是否联机的方式。
public bool isConnected()
{
ConnectivityManager connectManager = (ConnectivityManager)GetSystemService (Context.ConnectivityService);
NetworkInfo netInfo = connectManager.ActiveNetworkInfo;
if (netInfo != null && netInfo.IsConnectedOrConnecting) {
NetworkInfo wifi = connectManager.GetNetworkInfo (ConnectivityType.Wifi);
NetworkInfo mobile = connectManager.GetNetworkInfo (ConnectivityType.Mobile);
if ((mobile != null && mobile.IsConnectedOrConnecting) || (wifi != null && wifi.IsConnectedOrConnecting)) {
return true;
} else {
return false;
}
} else {
return false;
}
}
然后将isConnected()
的值分配给IsOfflineMode
。
IsOfflineMode = !isConnected ();
但我不想每次都给isConnected()
打电话。
如何设置触发器,以便在设备脱机/联机时更改IsOfflineMode
的值?
谢谢你抽出时间。
创建一个BroadcastReceiver以响应<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
操作
希望它能有所帮助!