【android】监听网络变化连续多个广播的问题解决
问题:
public class NetStatReceiver extends BroadcastReceiver {
public static final String netACTION = "android.net.conn.CONNECTIVITY_CHANGE";
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
this.context = context;
if (intent.getAction().equals(netACTION)) {
// Intent中ConnectivityManager.EXTRA_NO_CONNECTIVITY这个关键字表示着当前是否连接上了网络
boolean isBreak = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
if (!isBreak) {//有网络
//3G跟WIFI切换的时候,会收到三个这样的广播,第一个广播把wifi连接上,第二个广播到3G关闭掉,第三个广播把wifi连接上。但是我这里只想提醒用户一次啊,怎么把另外两次提醒屏蔽掉呢?谁有好的方法,android方面着手的,或者java方面着手的。
}else {
}
解决办法:
NetworkInfo netInfo = (NetworkInfo) b.get(ConnectivityManager.EXTRA_NETWORK_INFO);
NetworkInfo.State state = netInfo.getState();
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
if ((state == NetworkInfo.State.CONNECTED) && (activeNetInfo != null) && (activeNetInfo.getType() != netInfo.getType())) {return;}
activeNetInfo.getType() != netInfo.getType()
更多相关文章
- Android开发学习笔记整理(16)-网络请求
- android 网络检测
- android 判断网络是否连接
- Android studio 多线程网络文件下载
- android判断网络是否能用
- android 获取网络上服务器图片
- Android 监控网络状态
- android网络状态检查
- Android 下的网络测试工具一个!