我正在使用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);
}
}
答案 0 :(得分:0)
我认为你应该使用这个方法activeNetworkInfo.isConnected()。连接时返回布尔值true。