clearTaskOnLaunch HowTo?

时间:2011-03-28 15:07:13

标签: android android-activity android-manifest

阅读Android documentation以及这里的一些答案使得clearTaskOnLaunch应该如何工作变得模棱两可。具体地

1)如何识别根活动?它只是具有DEFAULT,LAUNCHER或MAIN意图过滤器的那个吗?

2)从文档中的“主屏幕”启动意味着操作系统主屏幕或应用程序列表,对吗?即来自不在申请中。

3)每当从主屏幕启动该活动时,clearTaskOnLaunch是否清除活动堆栈,或者只是从主屏幕启动该活动的进程时?因为文档表明前者,但这里的帖子表明后者。我想这取决于“发射”的定义是什么。

编辑: 4)“清除”活动堆栈是否意味着从字面上删除它,或让活动循环通过onCreate()和finish()?

我以各种可想象的方式操纵clearTaskOnLaunch,绝对没有效果。我已将它放在清单中的根活动中,然后将其放在每个活动中以确保,完全终止进程后重新启动我的应用程序,等等。我的活动堆栈根本没有被清除。

任何人都可以提供有关如何实施clearTaskOnLaunch的完整概述吗?

1 个答案:

答案 0 :(得分:6)

以下是Android工程师对群组的完整回复:http://groups.google.com/group/android-developers/browse_thread/thread/da024bcaf4e1960f

  
    

在这里阅读Android文档和一些答案(以及     StackOverflow)使clearTaskOnLaunch如何变得模棱两可     应该表现得特别:

         

1)“清除”活动堆栈是否意味着从字面上删除它,或者     让活动循环通过onCreate()和finish()?

  
     

清除堆栈中的所有活动都将通过   生命周期好像他们调用了finish()。根活动将   通常保持原样。

     
    

2)如何识别根活动?是     它只是一个与     DEFAULT,LAUNCHER或MAIN意图过滤器?

  
     

这基本上是堆栈中的第一个活动。意图是   Intent用于启动堆栈。

     
    

3)从文档中的“主屏幕”启动意味着OS主页     屏幕或应用程序列表,对吗?即来自不在     应用。

  
     

这并不重要 - 它只是谁设置   Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED。标准发射器设置   这是从图标启动应用程序时。您可以自己设置   你要。

     
    

4)clearTaskOnLaunch是否清除活动堆栈     活动从主屏幕启动,或者就在那时启动     活动的过程是从主屏幕开始的?因为文档     表示前者,但此处的帖子表示后者。我猜这个     取决于“发射”的定义是什么?

  
     

每当从主屏幕启动时。流程这一事实   杀死并重新启动应该对用户不可见。

     
    

我以各种可想象的方式操纵clearTaskOnLaunch     绝对没有效果。我把它放在了我的根活动中     清单,然后将它放在每个活动中,以确保重新启动     完全杀死进程后我的申请等等。我的活动     堆栈根本没有被清除。

  
     

设置以此为例 - 如果您进入设置,请向下挖掘   一点,按回家,然后再次启动设置,你将最终进入   家庭活动,而不是你上次去的地方。它只是设置   应用程序主要活动的标志。