Android 任务和回退堆栈---管理任务

长平狐 发布于 2012/10/16 10:20
阅读 82
收藏 0
Android通过把所有的已启动的Activity依次放到同一个后进先出的堆栈里来进行管理,对于大多数应用程序来说这种方法能够很好的工作,并且你不必担心Activity是如何跟任务关联的或者他们是如何存在回退堆栈中的。但是,你可能决定要打破这种通常的行为。或许你想要应用程序中的一个Activity在启动的时候开启一个新的任务(而不是放在当前的任务中);或者当你启动一个Activity时,你想使用之前既存的实例(而不是在回退堆栈的顶部创建一个新的实例);或者你想在用户离开这个任务时清除回退堆栈中根Activity以外的所有Activity。

你能够使用<activity>清单元素中的属性和传递给startActivity()方法的Intent中的标识来做这些事情,甚至更多。

<activity>的主要属性包括:

taskAffinity

launchMode

allowTaskReparenting

clearTaskOnLaunch

alwaysRetainTaskState

finishOnTaskLaunch

Intent的主要标识包括:

FLAG_ACTIVITY_NEW_TASK

FLAG_ACTIVITY_CLEAR_TOP

FLAG_ACTIVITY_SINGLE_TOP

在以后的章节中,你会看到怎样使用这些清单属性和Intent标识来定义Activity是如何跟任务关联的以及在回退堆栈中的行为。

警告:大多数应用程序都不应该终端Activity和task的默认行为。如果你决定必须编辑Activity的默认行为,就要谨慎使用,并且确保启动期间和使用回退按钮从其他的Activity和任务中返回时这个Activity的可用性。同时确保导航的结果与用户的预期行为一致。


原文链接:http://blog.csdn.net/fireofstar/article/details/7288510
加载中
返回顶部
顶部