Note that there are some explanatory texts on larger screens.

plurals
  1. POIntentService responding to dead ResultReceiver
    primarykey
    data
    text
    <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>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload