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

当没有信号时 会掉线, 我想实现恢复网络连接(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,"网络不可用");
}
                  
        }

你可能感兴趣的:(android)