2011-08-04 128 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