2010-12-14 5 views
0

、私は(私は私が代わりにonPause()onResume()を使用することになってると思うが、それは本当にポイントではありません)Activity.onDestroy()Activity.onCreate()に登録し、登録解除されました:Android受信者はアプリケーション終了時に自動的に登録解除されますか?私の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

Androidはあなたのプロセスを殺すだけなので、onDestroyの呼び出しは保証されません。 – Yaroslav

+0

@ Yaroslav私は "私はonPause()とonResume()を代わりに使用することになっていると思いますが、実際にはポイントではありません" –

答えて

0

Activity.onResume()実装にレシーバを登録する場合は、Activity.onPause()でそれを登録解除する必要があります。 (一時停止するとインテントが受信されず、不要なシステムオーバーヘッドが削減されます)

+0

これを無視して、アプリケーションが終了しようとしているときに受信機を登録解除する必要があります? –

+0

あなたのアプリケーションが起動していない場合、起床しますか?もしそうなら、それをManifestファイルに登録することができます。それ以外の場合は、ユーザーがアプリを終了する前に受信者の登録を解除します – ggomeze

関連する問題