检查是否没有互联网连接的最佳方法?

时间:2015-10-23 01:58:03

标签: android broadcastreceiver

我正在使用BroadcastReceiver来检测网络中的变化。但是,当没有互联网连接时,我的else语句执行两次。有什么更好的方法来解决这个问题?

@Override
public void onReceive(Context context, Intent intent) {

    ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetwork = connectivityManager.getActiveNetworkInfo();

    if (activeNetwork != null && (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI || activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE)) {
        Toast.makeText(context, "Connected", Toast.LENGTH_LONG).show();
    } else  {
        Intent i = new Intent(context, NetworkErrorActivity.class);
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    }
}

1 个答案:

答案 0 :(得分:0)

我认为你应该使用这个方法activeNetworkInfo.isConnected()。连接时返回布尔值true。