Comment faites-vous un androïde « Home » by-pass raccourci l'application il est le point de son histoire?

StackOverflow https://stackoverflow.com/questions/978172

Question

J'ai une application qui vous permet de créer des raccourcis « Accueil » à un Activity spécifique. Il se trouve que certains de mes utilisateurs utiliseront l'application, appuyez sur la touche maison pour aller faire quelque chose d'autre, utilisez l'un des raccourcis pour revenir en arrière à cette activité. Depuis l'application est encore en mémoire, il ouvre juste la nouvelle Activity au-dessus des autres et la touche « Retour » les ramènera à travers toute l'histoire. Ce que je voudrais voir se produire est s'ils utilisent un raccourci puis pour tuer efficacement l'histoire et avoir la clé de retour quitter juste l'application. Toutes les suggestions?

Était-ce utile?

La solution

Tout d'abord, mettre en place le taskAffinity le manifeste pour faire fonctionner de Activity comme un autre « tâche »:

<activity
        android:taskAffinity="" 
        android:name=".IncomingShortcutActivity">
        <intent-filter>
            <action android:name="com.example.App.Shortcut"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
</activity>

puis, lors de la construction du raccourci, définissez les drapeaux FLAG_ACTIVITY_NEW_TASK et FLAG_ACTIVITY_CLEAR_TOP. Quelque chose comme:

// build the shortcut's intents
final Intent shortcutIntent = new Intent();
shortcutIntent.setComponent(new ComponentName(this.getPackageName(), ".IncomingShortcutActivity"));
shortcutIntent.putExtra(EXTRA_STOPID, Integer.toString(this.stop_id));
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
final Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
// Sets the custom shortcut's title
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, custom_title);
// Set the custom shortcut icon
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.bus_stop_icon));
// add the shortcut
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendBroadcast(intent);

Autres conseils

Essayez d'ajouter Intent.FLAG_NEW_TASK à l'intention.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top