2011-02-12 85 views
3

在哪裏註冊的正確的地方/註銷活動中的一個意圖接收器?通常我會把這樣的東西在這裏:凡註冊一個BroadcastReceiver(活動週期的樂趣)

class MyActivity 
{ 
    private BroadcastReceiver mMyReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      Log.v(TAG, "Do something."); 
     } 
    }; 

    @Override 
    public void onResume() { 
     super.onResume(); 

     registerReceiver(mMyReceiver, new IntentFilter(...)); 
    } 

    @Override 
    public void onPause() { 
     super.onPause(); 

     unregisterReceiver(mMyReceiver); 
    } 
} 

的問題是,我的活動就可以不再對廣播如果它發生,而它在暫停狀態響應。那麼正確的地方去做什麼呢?

感謝

回答

1

我覺得你的情況,你可以註冊在OnCreate(接收器)和註銷的onDestroy()。即使在暫停之後,它也會保留它,直到活動被破壞。

我有相反的問題。我最初在onCreate()中註冊了我的接收器,當我的活動暫停時,我仍然收到它正在接收廣播的日誌。我把它移到了onResume上,就像你一樣,那個問題就消失了。

2

這應該工作你的情況:

Unregister in onDestroy().