2011-08-04 126 views
3

我是Android的新手。我想從一個更有經驗的程序員那裏知道我是否做得很好。一個活動裏面我用這種方式宣告一個BroadcastReceiver:活動內廣播接收器

private BroadcastReceiver locationUpdateReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) {   
        //Do something 
     } 
    } 
}; 

我註冊了接收器的onResume()和註銷的onPause它()。我可以在內存泄漏中運行嗎? 如果否,如果我聲明一個擴展了BroadcastReceiver的非靜態內部類,並且我在活動內部使用它,那麼會一樣的註冊和取消註冊? (我想這就是我控制它的生命週期)。

在此先感謝。

回答

1

這樣做不會導致任何內存泄漏。

+0

謝謝你,你的意思是在這兩種情況下? – iacopo

+0

是的,內部類將是相同的。對於每個onResume,一旦活動進入後臺(暫時或活動將被銷燬),就會調用onPause,您可以確定地知道自己的邏輯沒問題。 –

+0

最好在onStart()而不是onResume()上註冊它。您應儘可能避免在onResume/onPause中編寫代碼,以避免應用程序之間的緩慢轉換。 – jBilbo