I have a service helper singelton, which basically connects an Activity to a Service (sends requests and receives broadcasts and provides a callback interface for the Activity to implement)

The reccomended way is probably to do it onResume() / onPause() like this:

```
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);
   }

}

```

This prevents the leaks, but in thas way the Activity might miss some important callbacks while paused / not visible. 
Ideally I would do it in onCreate() and onDestroy(), but [its stated](http://developer.android.com/guide/components/activities.html#Lifecycle) that the Activity is killable after onPause() so the Activity might get leaked (if I interpret this correctly)

What is the right way to do this?