Android网络可达性(离线模式)



所以我在应用程序中调用了一些不同的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"/> 操作

希望它能有所帮助!

最新更新