`
445822357
  • 浏览: 741215 次
文章分类
社区版块
存档分类
最新评论

1.5、Activity任务和返回堆栈2(Tasks and Back Stack)

 
阅读更多

参考:http://developer.android.com/guide/components/tasks-and-back-stack.html#ManagingTasks

在前面一章中讲到了Android如何管理任务和返回堆栈——将所有的连续Activity安排在同一个Task中,即一个“后进,先出”的栈里。这样的方式对大多数应用程序有很好的效果,而且我们也不需要担心你的Activity如何和Task联系在一起,也不需要关系它们在“back stack”返回堆栈中是如何存在的。然而,在某些情况下,你也许会需要打破这种常规的行为。比如你需要你用用程序里面的某个Activity在一个新的Task中启动(而不是被安排在当前的Task中);或者,当你开启一个Activity的时候,你想如果它已经存在,那么就把它已经存在的实例拿到前台(而不是在返回堆栈的顶部再去创建一个新的实例);或者,你也许想当用户离开这个Task的时候,清除该返回堆栈中除了root Activity的其他所有Activity。

通过在manifest文件中<activity>中添加属性和在调用startActivity()时为intent添加flag,来完成上面的行为,或者做其他更多的特定的行为。

在Task管理的方面,<activity>中可用的属性如下:

可用的Intent flag如下:

在下面的章节中,你将会看到如何去使用manifest属性和intent flag来定义Activity如何和Task结合,并且是如何表现在“back stack”返回堆栈中的。

注意:大多数应用程序不需要破坏Activity Task的默认行为。如果你确定对于你的Activity,确实是需要修改这个默认行为的话,使用时一定要小心,一定要测试程序可用性活动,如在它的启动过程中和当通过后退按钮从其他的Activity和Task中返回的时候。一定要测试导航行为可能与用户的预期行为的冲突。


因为内容较多,分为几篇文章来描述:

1.6、Activity任务和返回堆栈3(Tasks and Back Stack)之LaunchMode






分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics