所以我在我的应用程序中调用了几个不同的Web服务,但我想检查设备是否能够在调用服务之前连接到Internet。
首先我创建了一个静态标志。
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
的值?
感谢您的时间。
答案 0 :(得分:2)
创建BroadcastReceiver响应操作<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
希望它有所帮助!