我有一个服务助手singelton,它基本上将一个Activity连接到一个Service(发送请求并接收广播并为Activity提供一个回调接口来实现)
推荐的方式可能是在onResume()/ onPause()这样做:
MyActivity extends Activity implements ServiceHelper.Callbacks {
protected void onResume() {
super.onResume();
mServiceHelper.setListener(this);
}
protected void onPause() {
super.onPause();
// Avoid leaking this Activity
mServiceHelper.setListener(null);
}
}
这可以防止泄漏,但是在暂停/不可见的情况下,Activity可能会错过一些重要的回调。 理想情况下我会在onCreate()和onDestroy()中执行此操作,但its stated表示在onPause()之后Activity可以被禁用,因此Activity可能会被泄露(如果我正确解释)
这样做的正确方法是什么?
答案 0 :(得分:1)
onCreate / onDestroy对是正确的。如果应用程序被系统杀死,则释放所有内存,因此在这种情况下不可能发生泄漏。
答案 1 :(得分:0)
如果您想在应用处于活动状态或暂停状态时执行某些操作,请考虑使用广播接收器。 http://developer.android.com/reference/android/content/BroadcastReceiver.html