Tasks and Back Stack

来源:互联网 发布:加湿器 品牌 知乎 编辑:程序博客网 时间:2024/06/05 04:14

在中能使用的attributes

taskAffinity
launchMode
allowTaskReparenting
clearTaskOnLaunch
alwaysRetainTaskState
finishOnTaskLaunch

activity四中启动模式

“standard”

“singleTop”

“singleTask”: 1.singleTask 并不一定处于栈底

   2.singleTask 并一定会是栈底的根元素 

   3.singleTask 并不一定会启动新的task  

 情况一:如果在本程序中启动singleTask的activity:假设ActivityA是程序的入口,是默认的模式(standard),ActivityB是singleTask 模式,由ActivityA启动,刚ActivityB不会位于栈底,不是根元素,不会启动新的task,此种情况ActivityB会和ActivityA在一个栈中,位于ActivityA上面

  情况二:如果ActivityB由另外一个程序启动:假设apkA是情况一中的应用,apkB是测试程序,在apkB中启动apkA中的ActivityB,刚ActivityB会位于栈底,是根元素,会启动新的task

注意:singleTask模式的Activity不管是位于栈顶还是栈底,再次运行这个Activity时,都会destory掉它上面的Activity来保证整个栈中只有一个自己,切记切记

“singleInstance”:新开一个task

Intent flag

FLAG_ACTIVITY_NEW_TASK

FLAG_ACTIVITY_SINGLE_TOP

FLAG_ACTIVITY_CLEAR_TOP

0 0
原创粉丝点击