在我的应用程序中,我保持一个 TCP 连接来传输数据。我想实现以下场景;
我需要听网络变化,所以如果网络断开,我需要通知用户。如果网络再次出现,我需要自动连接并开始流式传输。还有一个限制:如果应用程序处于暂停状态,我不应该开始流式传输。为了实现这一点,我在我的 BaseActivity 中为 CONNECTIVITY_ACTION 注册了一个接收器,并在 onPause() 中注册了相同的 unregisterReceiver。
如果我运行这段代码,onResume() 会无限调用。什么地方出了错?请帮帮我。
提前致谢!
@Override
protected void onResume() {
System.out.println("onResume() in BaseActivity");
registerReceiver(connectivityReceiver, new IntentFilter(
ConnectivityManager.CONNECTIVITY_ACTION));
super.onResume();
}
并在 onPause()
@Override
protected void onPause() {
System.out.println("onPause() in BaseActivity");
unregisterReceiver(this.connectivityReceiver);
super.onPause();
}
这是我的广播接收器
private BroadcastReceiver connectivityReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
BaseActivity.this.connectionChange(netCheckerHelper(context));
}
};