在我的活动中,我尝试注销Broadcast Receiver
。我只需添加以下代码即可进行注销。
unregisterReceiver(myBroadcastReceiver);
但问题是我的
Broadcast
在两种情况下会注销掉:1) 如果我在
onActvityResult
中得到结果。2)
onDestroy
。但问题是,当我的
Broadcast Receiver
从onActvityResult
注销时,当用户尝试关闭Activity
时,我的onDestroy
被调用并且我的应用程序崩溃了。
我的Logcat:
Caused by: java.lang.IllegalArgumentException: Receiver not registered: com.coincide.ridetog.post_ride.PostRideActvity$MyBroadcastReceiver@831c755 at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:782) at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:1205) at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:586) at com.coincide.ridetog.post_ride.PostRideActvity.onDestroy(PostRideActvity.java:300)
这是我的onDestroy()
@Override
protected void onDestroy() {
super.onDestroy();
if (myBroadcastReceiver!=null) {
unregisterReceiver(myBroadcastReceiver);
}
}