registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
// code here...
}
}, new IntentFilter(...));
If you do that, when you switch orientation (ctrl-F11 in the emulator), you'll see an exception like this:
ERROR/ActivityThread(1585): Activity com.foo.SomeActivity has leaked IntentReceiver com.foo.SomeActivity$2@405266b8 that was originally registered here. Are you missing a call to unregisterReceiver()?
So using an anonymous inner class is a bad idea. You have to hang onto the reference to the BroadcastReceiver instance in a member variable of the Activity and release it in onDestroy:
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(syncCompleteReceiver);
}
No comments:
Post a Comment