0

我在我的应用程序中遇到以下问题。在我的活动恢复中,我使用以下方法注册了一个广播接收器:

NetworkStateReceivernetworkStateReceiver = new NetworkStateReceiver(UIWrapperActivity.this);        
filterConnectivity = new IntentFilter();
filterConnectivity.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(networkStateReceiver, filterConnectivity);

然后在onPause我注销它:

unregisterReceiver(networkStateReceiver);

在同一活动中的广播接收器中,我捕获CONNECTIVITY_ACTION并显示某个活动(类似于 noConnection)切换到此活动确实触发onPause()了第一个活动,因此接收器未注册,但是当我尝试使用它关闭 noConnection 活动时,finish()它刚刚重新打开并且不会离开。

有谁知道我做错了什么以及为什么我的广播接收器没有取消注册?

4

1 回答 1

1

我最终发现我做错了什么,所以如果有人遇到同样的错误,这就是解决方案。当我在接收器中捕获意图广播时,我没有完成活动,因此请注意这一点,因为如果活动仍然存在,那么它会onResume()再次调用它并且接收器会重新注册。

于 2013-08-12T09:33:38.883 回答