【发布时间】:2013-03-30 19:28:26
【问题描述】:
我的步骤:
- 启动器快捷方式启动 Activity A;
- 点击HOME按钮;
- 自定义快捷方式启动ActivityB;
- 点击BACK按钮 - 显示活动A。
但是当我点击自定义快捷方式时,我希望我所有的旧活动关闭。我该怎么做?
清单:
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);
}
【问题讨论】:
-
你试过 android:noHistory="true" 吗?
-
launchMode="singleTop"工作正常。您只有一个 ActivityA 实例和一个 ActivityB 实例。您无法使用singleTop获得您想要的行为。 -
@Kgrover 如果我设置
android:noHistory="true",那么每次ActivityA都会执行finish()方法。不仅是当我从自定义快捷方式启动我的应用程序时。 -
@David Wasser,你是绝对正确的。谢谢解释!!!您对销毁所有以前的活动有什么想法吗?
-
你不想要 4. 单击 BACK 按钮 - 显示活动 A 对吗?
标签: android android-activity shortcut