2

我的目的是确保任务中的根活动在任何情况下都只有一个实例。所以我设置了 android:launchMode="singleTask",它在大多数情况下都能正常工作。

但是,如果我将我的任务快速切换到其他人并多次切换回来,launchMode 设置似乎失去了效果。我观察到在前一个被销毁之前创建了一个新的活动实例,如下所示。

有人可以帮忙提供一个完美的解决方案,以确保在任何条件下都存在一个根活动实例吗?

提前致谢

11-28 10:43:41.158: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@40523a90 onPause
11-28 10:43:41.158: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@40523a90 onResume
11-28 10:43:41.468: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@40523a90 onPause
11-28 10:43:41.468: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@40523a90 onResume
11-28 10:43:41.818: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@40523a90 onPause
11-28 10:43:41.868: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@4054e0a8 onCreate
11-28 10:43:42.848: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@4054e0a8 onStart
11-28 10:43:42.868: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@4054e0a8 onResume
11-28 10:43:42.868: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@4054e0a8 onPause
11-28 10:43:42.868: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@4054e0a8 onResume
11-28 10:43:42.868: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@40523a90 onStop
11-28 10:43:42.878: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@40523a90 onDestroy
11-28 10:43:42.928: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@4054e0a8 onPause
11-28 10:43:42.928: W/Launcher(15718): Function Called: com.firebear.launcher.Launcher@4054e0a8 onResume
4

1 回答 1

0

您是否在开始另一个活动时调用finish()根活动?如果是这样,请删除该声明。

根活动通常只创建一次,并且只有在它被销毁时才会重新创建。这是正常的应用程序行为,无需在清单中设置任何标志。如果根活动已经存在,onStart()并且onResume()将被调用。

于 2013-02-16T09:51:16.910 回答