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