如何防止自定义家庭启动器应用重启活动?

tip*_*top 5 android android-launcher android-homebutton

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

另一方面,ADW启动器和LauncherPRo的行为不一样-我的情况没有刷新。Launcher Pro甚至可以执行以下操作:

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

任何想法如何做到这一点?

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

小智 6

添加

if (!isTaskRoot()) {
    finish();
    return;
}
Run Code Online (Sandbox Code Playgroud)

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


Com*_*are 5

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

  • @mishkin:我将使用SDK的Home示例应用程序,该应用程序使用`singleInstance`。奇怪的是,AOSP启动器使用了“ singleTask”。 (2认同)