title: IntentService responding to dead ResultReceiver
body: <p>An activity instantiates a ResultReceiver and overrides onReceiveResult. The activity then sends an Intent to an IntentService and includes the ResultReceiver as an extra. Once the IntentService is finished processing it sends a message back to the ResultReceiver and processes it in onReceiveResult.</p>
  
  <p>The issue is if the user navigates away from the Activity then the result is still sent back to the ResultReceiver which causes all types of issues. Is there not a way to stop this behavior? I've tried stopping the IntentService in the activity's onDestroy() but the result is still sent back.</p>
  
  <p><strong>Here is a sample Activity</strong></p>
  
  <pre><code>public class Foo extends Activity {
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
  
          Intent i = new Intent(this, SampleIntentService.class);
          i.putExtra("receiver", mReceiver);
          startService(i);
      }
  
      @Override
      public void onDestroy() {
          stopService(new Intent(this, SampleIntentService.class));
          mReceiver = null;
          super.onDestroy();
      }
  
      ResultReceiver mReceiver = new ResultReceiver(new Handler()) {
          @Override
          protected void onReceiveResult(int resultCode, Bundle resultData) {
              // Handle response from IntentService here
          }
      };
  }
  </code></pre>
  
  <p><strong>Here is a sample IntentService</strong></p>
  
  <pre><code>public class SampleIntentService extends IntentService {
      public SampleIntentService() {
          super(SampleIntentService.class.getName());
      }
  
      @Override
      protected void onHandleIntent(Intent intent) {
      ResultReceiver rec = intent.getParcelableExtra("receiver");
          if (rec != null) {
              rec.send(200, null);
          }
      }
  }
  </code></pre>