该应用程序有两项活动任务:
Activity
A(发射器)Activity
B Activity
C< ----这就是示例中堆栈所指向的位置。现在尝试:
Application
实例(Application#onCreate()
被调用)。有趣的是,如果你在这里:
Activity
A(发射器)Activity
B< ---- here ...你确实重复了这个场景,你的应用程序被杀了,而且我认为它应该回到主屏幕。
简而言之,看起来Android在杀死应用程序时并未清除所有任务。这只适用于非常精确的情况。转到设置>应用程序>你的应用>强制停止,您将看到它确实清除了所有任务。
我们可以做些什么来强制Android在杀死应用程序时杀死所有任务?
答案 0 :(得分:1)
在查看Android SDK上最新应用的处理方式后(请参阅此处第135行http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.1_r1/com/android/systemui/recent/RecentTasksLoader.java?av=f#135)
我理解(并测试过)如果您为Activity
C提供图标和标签,则:
<activity
android:name=".ActivityC"
android:label="Activity Title"
android:icon="@drawable/ic_icon"
</activity>
您将在最近的应用程序转盘中看到2个应用程序(确实是任务)。
现在我认为,对于我的用例,我不应该使用不同的任务,因为它几乎被视为Android的另一个应用程序。
答案 1 :(得分:1)
要为独立工作创建任务。这就是为什么它说singleInstance和singleTask在新任务的ROOT处启动Activity(作为该特定任务的根活动)。因为当您从概览屏幕单击其中一个任务时,Android系统需要一种启动任务的方式(在这种情况下,它需要启动器/根活动)。
所以,你杀了一个任务,它不应该杀死另一个任务,因为用户可能想要稍后切换那个INDEPENDENT应用程序任务吗?
但由于您需要正确处理(主要是导航和用户体验)单独的任务,因此很难管理这种行为。所以在你采取行动之前先想想。 Android文档本身就是这样说的;
&#34;其他模式 - singleTask和singleInstance - 不适合大多数应用程序,&#34;