JMRboosties
JMRboosties

Reputation: 15740

Android: Launch new instance of application activity from home screen widget

I have an app widget on the home screen which includes a button that launches a basic settings Activity.

When the user presses the Back button, if the main application has some activities in it's stack, the back press takes you to the most recently viewed Activity in the app, rather than back to the homepage. I've tried the following flags for my intent:

settingsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

settingsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_TASK_ON_HOME);

settingsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

But no luck with any. Is there any flag or combination of flags I can use to do this? Thanks.

Upvotes: 2

Views: 864

Answers (2)

melnik
melnik

Reputation: 55

try next

settingsIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); settingsIntent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);

This flags run activity in new task and don't add it to history after exit. So your settings activity don't cross with main app

Upvotes: 1

Paul Harris
Paul Harris

Reputation: 5809

You need to do the following:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

You are currently using setFlags which overrides the flags you set previously when you need both of these flags for it to work correctly.

You can read abut this at http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP

Upvotes: 1

Related Questions