Android之Activity的栈管理

一、Task的介绍

一个应用程序通常包含多个 activity每个 activity 在设计时都应该以执行某个用户发起的 action 作为核心目标,并且它能启动其它 activity。 Task就是多个Activity的集合,用户操作时与Activity进行交互。这些Activity根据启动顺序压入task中,如果pop task 是按照先进后出的顺序pop

       大部分 task都启动自 Home屏幕。当用户触摸 application launcher中的图标(或 Home屏幕上的快捷图标)时,应用程序的 task就进入前台。如果该应用不存在 task(最近没有使用过此应用),则会新建一个 task,该应用的“main”activity作为栈的根 activity被打开

二、Task的管理

如上所述,Activity依照顺序压入Task并按照“先进后出”的顺序pop,对Task的管理显得十分的必要。有时想让某个 activity启动一个新的 task(而不是被放入当前 task);或者,让 activity启动时只是调出已有的某个实例(而不是在 back stack顶创建一个新的实例);或者,想在用户离开 task时只保留根 activity,而 back stack中的其它 activity都要清空。

利用 "<activity> manifest元素的属性和传入 startActivity()  intent 中的标志,可以做很多事情。

常用的<activity>属性:

taskAffinity如果不设置此属性,默认一个应用程序只有一个栈,这个栈以应用包命为单位task对于Activity来说就好像它的身份证一样,可以告诉所在的task,自己属于这个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值