如何防止自定义主启动器应用程序重新启动活动?

问题描述 投票:0回答:3

我正在更换我自己的家用发射器,它工作正常,但有一件事困扰着我。当我按下 home 键时,当前的 home 活动(在清单中定义为 main/default/launcher/home 的活动)将重新启动 - 当前活动实例 onpause 被执行,oncreate 被再次触发,因此新的 Activity 被启动。

另一方面,ADW 启动器和 LauncherPRO 的行为并非如此 - 我不会像我的情况那样进行刷新。 Launcher Pro 甚至可以执行多种操作:

  1. 如果您位于带有应用程序图标的主屏幕上,它会缩小以查看所有屏幕的快照,
  2. 如果您打开抽屉并按主页,它就会返回主屏幕。

有什么想法如何做到这一点吗?

我只是从头开始做了一个非常简单的原型,只有一个活动(在清单中定义为 main/default/launcher/home),我看到了同样的事情 - 如果我按 Home,它就会重新创建。

android android-launcher android-homebutton
3个回答
6
投票

添加

if (!isTaskRoot()) {
    finish();
    return;
}

第一个 Activity 的 onCreate()(请参阅单击应用程序图标打开时 Android 应用程序会重新启动)。


5
投票

android:launchMode="singleInstance"
添加到清单中的
<activity>
元素。


0
投票

请帮助我。我的活动是 singleTask,但是当选择它作为默认启动器时,它会创建另一个活动,并且旧的活动仍在最近的应用程序列表中。

© www.soinside.com 2019 - 2024. All rights reserved.