Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Clearning Activity's intent data randomly comes back, why?

Tags:

android

I have a media application which starts playback when the intent is sent to the player activity with the following intent extras; data "path to the music" and type "mime/audio format".

I pick up the intent data at the player activity execute to start playback and I remove the passed extras from the intent to avoid having the same request going again after flipping the screen or the activity being brought back to the foreground.

This is how I process an intent:

final String data = getIntent().getDataString();
final String type = getIntent().getType();

// start playback
    requestPlay( data, type );

    // remove intents because they are needed only once per call!
    this.getIntent().setDataAndType(Uri.parse(""), "");
    this.getIntent().removeExtra("data");
    this.getIntent().removeExtra("type");

The issue I'm having is that randomly and rarely, I will open the application and when it resumes at the player activity, the intent will contain the previous extra data and start playing... This is annoying to me and well my users...

Anyone have any ideas what's the best way to clear the intents data? Some reason the ActivityManager might be keeping this data stored...?

Thanks!

-Jona

like image 561
Jona Avatar asked Feb 17 '11 17:02

Jona


1 Answers

My Solution:

Bundle mExtrass = null;
getIntent().replaceExtras(mExtrass);

And this clear the extra data.

like image 54
Devil Avatar answered Oct 25 '22 02:10

Devil