我的步骤:
但是当我点击自定义快捷方式时,我想要所有旧活动关闭。我怎么能这样做?
清单:
activity A: android:launchMode="singleTop"
activity B: android:launchMode="singleTop" and android:exported="true"
java:
private void setShortCut() {
Intent shortcutIntent = new Intent(getApplicationContext(), A.class);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
shortcutIntent.setAction(Intent.ACTION_MAIN);
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "test");
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, ((BitmapDrawable)imgLogo.getDrawable()).getBitmap());
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendBroadcast(intent);
}
答案 0 :(得分:1)
activity A: android:finishOnTaskLaunch="true"
activity B: android:finishOnTaskLaunch="true" and android:exported="true"
来自http://developer.android.com/guide/topics/manifest/activity-element.html#finish
的官方文件“无论何时用户再次启动其任务(在主屏幕上选择任务),是否应关闭(完成)活动的现有实例 - 如果应该关闭,则为”true“,并且”false“ “如果没有。默认值为”false“。”
答案 1 :(得分:1)
我建议您使用自定义快捷方式也可以ActivityA
启动,但在Intent
中传递额外的额外。在ActivityA.onNewIntent()
和ActivityA.onCreate()
中,您可以检查额外是否存在,如果是,请启动ActivityB
并致电finish()
。这应该会给你你想要的行为。
例如,在创建自定义快捷方式时添加此项:
shortcutIntent.putExtra("customShortcut", true);
并将此代码放在onCreate()
的{{1}}和onNewIntent()
中:
ActivityA