【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(安卓)Wifi相关广播 -- WIFI_STATE_CHANGED_ACTION
- Android(安卓)-- 生成二维码
- Android(安卓)监听wifi广播的两种方式
- android 自定义组件随着手指自动画圆
- 我今天的面试题,注册广播有几种方式,这些方式有何优缺点?请谈谈Andr
- Android广播接实现电话的监听(电话的状态,拦截)
- android 监听USB连接状态
- Android四大组件之~~BroadcastReceiver
- Android(安卓)学习笔记--android――Activity生命周期,server,Br