2011-10-12 39 views
1

我的应用程序中有多个活动。 为活动的流动是Android:活动的启动模式

A-> B-> C^...

A-> D->电子...

A-> F-“G ..

....

,每个人都有一个后退按钮返回到之前的活动和家庭回去A.

我的问题是,当我推出各自的这些作为singletask,我能感觉到明显快SWITC当我点击回家或回家时,在活动之间兴奋。我没有看到任何问题,如果我把它们作为单数的问题。

但要是我能够保持活动,在我的应用singletask我很verlooking任何问题。非常感谢您的时间和帮助

回答

7

是有从mainfest.xml改变活动的行为模式,当你将督促Android主屏幕Home按钮并获得返回给应用程序之前的活动将是问题将完成应用程序,那么最好是使用意图,而不是使用单一任务模式,您可以使用意图切割活动堆栈的标志。并且通过在单个任务中启动模式来更改系统设置,为什么不用你保持启动模式,并将其交给系统处理活动..!

Intent intent = new Intent(getApplicationContext(),A.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(intent); 
      finish(); 
+0

有关应用程序的结束点时,家里真的很不错。我在阅读后才注意到这一点。谢谢。 你能否请求解释“你可以使用标志意图切割活动堆栈。”这将被使用的上下文 – png

+0

它就像当你想要去你的应用程序的菜单(即A)时,只需将标志添加到你的意图中,这将清除在A之后被调用的活动,并将直接给予你A和其他活动如果他们没有完成就会被破坏......试试这个flag..i编辑答案.. –

+0

好了,这里多了一个疑问:如果我们设置标志位,其他actvities将从栈中被清除,否则他们将被destryed。你能解释一下从堆栈中清楚的意思吗?它们是否真的没有被销毁?下一次,当这个活动被启动时被清除,它不会被启动,而是回到堆栈?我对么 ? – png

1

A “标准” 或 “singleTop” 活动可以被实例化许多 次。它们可以属于多个任务,并且给定的任务可以具有多个相同活动的实例。 与此相反,“singleTask”和“singleInstance”活动 局限于一个实例。由于这些活动是在 根的任务的,这种限制意味着有从未超过一次设备上的任务的单个实例更 。

的clearTaskOnLaunch属性如果这个属性被设置为在任务的根系活力 “真”,堆栈向下 每当用户离开任务和 返回到它的根系活力清除。换句话说,它是 alwaysRetainTaskState的极性(如果你想保留stsck中的所有活动,你可以使用它)。用户总是返回到初始状态 的任务,即使在短暂缺席或甚至在您的情况下按下家后也是如此。

+0

感谢您的时间和解释 – png