不断检查网络连接状态

时间:2018-10-19 05:50:59

标签: java android network-connection

我正在构建一个在线游戏,所以我需要手机一直检查网络连接。 因此我可以通知用户其Wifi或移动数据出现问题

2 个答案:

答案 0 :(得分:0)

使用它来检查您的Internet连接,并使用计时器或处理程序并运行该设备来定期检查

public static boolean isConnectedToInternet(){
    ConnectivityManager cm =
            (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkInfo activeNetwork = null;
    if (cm != null) {
        activeNetwork = cm.getActiveNetworkInfo();
    }
    // it need to connect to wifi/LTE and can access the internet
    return activeNetwork != null && activeNetwork.isConnectedOrConnecting();
}

可运行

Runnable mStatusChecker = new Runnable() {
    @Override
    public void run() {
        try {
            // check internet connection
        }finally {
            mHandler.postDelayed(mStatusChecker, STATUS_CHECK_INTERVAL);
        }
    }
};

答案 1 :(得分:0)

您无需在Android上进行轮询,您可以设置一个广播接收器,该接收器将在android 7(API 24)的连接状态发生任何变化时被调用

只要上下文有效,只要应用在CONNECTIVITY_ACTION中注册BroadcastReceiver,应用就会收到Context.registerReceiver()广播。