我有一个应用程序,可让您创建特定的主页“快捷方式” Activity
。事实证明,我的一些用户会使用该应用程序,点击主页键去做其他事情,然后使用其中一个快捷方式跳回该活动。由于应用程序仍在内存中,它只是在Activity
其他应用程序之上打开新应用程序,“返回”键会将它们带回整个历史记录。我希望发生的是,如果他们使用快捷方式来有效地终止历史记录并让后退键退出应用程序。有什么建议么?
问问题
10422 次
2 回答
6
首先,在 Manifest 中设置taskAffinity以使Activity
运行作为不同的“任务”:
<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>
然后,在构建快捷方式时,设置FLAG_ACTIVITY_NEW_TASK
和 FLAG_ACTIVITY_CLEAR_TOP
标志。就像是:
// 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);
于 2009-10-27T20:25:13.840 回答
1
尝试添加Intent.FLAG_NEW_TASK
到 Intent。
于 2009-06-10T23:06:53.063 回答