user577732
user577732

Reputation: 4056

Android old intent keeps relaunching

Hi in my app I have a dialog that asks if they would like to turn on my accessibility service if it is off. If they hit okay it launches an intent to open to accessibility like this

Intent intent = new Intent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS);
startActivityForResult(intent, 0);

This works fine however if they hit home from accessibility and then open my app again it doesn't show the dialog or anything but opens directly to accessiblity everytime. The only way to get around it is to hit back till I'm back at my home screen then reopening the app no longer opens to accessibility.

Why does it keep launching my old intent unless I back out? Why can't I hit back and then it not launch the intent again

Thanks for any help

Upvotes: 2

Views: 434

Answers (2)

Hoan Nguyen
Hoan Nguyen

Reputation: 18151

Use flag FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET

Intent intent = new Intent(android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
startActivityForResult(intent, 0);

However if the user launch your app from the history list, it will still show up.

Upvotes: 1

selalerer
selalerer

Reputation: 3934

I think the problem is that your activity is still waiting for a result.

If so, calling forceFinish() in your onResume() should fix the problem.

http://developer.android.com/reference/android/app/Activity.html#finishActivity%28int%29

Upvotes: 0

Related Questions