2010-12-14 68 views
0

当我的Android应用程序需要注册一个接收器,我已经登记在Activity.onCreate()Activity.onDestroy()(我想我应该是使用onPause()onResume()代替,但是这不是真正的点)注销:Android接收器会在应用程序退出时自动取消注册吗?

public class Foo extends Activity { 
    private Receiver bar = null; 

    @Override public void onCreate(Bundle bundle) { 
     this.registerReceiver(this.bar = new Receiver(), new IntentFilter()); 
    } 

    @Override public void onDestroy(Bundle bundle) { 
     this.unregisterReceiver(this.bar); 
    } 
} 

是否注销了实际需要的接收器,或者当我的应用程序退出时,框架是否会处理它?

+0

顺便说一下,调用onDestroy并不能保证,因为Android可能会杀死你的进程。 – Yaroslav 2010-12-14 09:21:39

+0

@Yaroslav我说:“我认为我应该使用onPause()和onResume()来代替,但这不是真正的要点” – 2010-12-14 17:22:09

回答

0

如果在你的Activity.onResume()实现中注册一个接收者,你应该在Activity.onPause()中注销它。 (暂停时你不会收到意图,这将减少不必要的系统开销)

+0

忽略这一点,当应用程序即将退出时实际上是否需要取消注册接收器? – 2010-12-14 17:22:38

+0

如果它没有运行,你想唤醒你的应用程序吗?如果是这样,你可以注册到你的Manifest文件中,这就是全部。否则,在用户退出应用程序之前取消注册接收器 – ggomeze 2010-12-15 10:40:21

相关问题