2010-12-14 35 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

相關問題