监控网络变化的广播接收者 重复调用 怎么解决

当没有信号时 会掉线, 我想实现恢复网络连接(wifi或者移动数据)时自动重连。 可是当我关闭wif再打开i时, 这个网络已连接 log打印了两次。。
造成两次启动联网线程。 有什么解决办法?

IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(receiver, filter);


public class ConnectivityReceiver extends BroadcastReceiver {
         
        private static final String TAG = "ConnectivityReceiver";
 
        @Override
        public void onReceive(Context context, Intent intent) {
                // TODO Auto-generated method stub
                 ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
                  
  NetworkInfo networkInfo = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
 
                  
                  NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
                   
                if (activeNetworkInfo != null) {
                         Log.i(TAG,"Active Network Type  = " + activeNetworkInfo.getTypeName());
                                    Log.i(TAG,"Active Network Type  = " + activeNetworkInfo.getType());
                                    Log.i(TAG,"Active Network State = " + activeNetworkInfo.getState());
                    if (activeNetworkInfo.isConnected() ) {
                            Log.i(TAG,"网络已连接");
// TODO 登录账户
                    }
                } else {
                        Log.i(TAG,"网络不可用");
}
                  
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值