在查找“任务和返回堆栈”指南的“定义启动模式”部分后,我不完全理解用“singleTask”声明的活动的行为。
假设当该活动的实例位于后台任务的底部(根活动)时,我启动一个 singleTask 活动(通过 startActivity 方法),
正如文章所述,我用来启动 singleTask-activity 的意图将被传递给实例,在这种情况下,实例是否将其自身带到其任务顶部并将其任务带到前台,或者只是将其任务带到前台而不将其带入前台。自己是否能完成其任务?
我说清楚了吗?请帮忙!提前致谢
实际上我曾经/现在也有同样的问题。
在阅读了 stackoverflow 上的回复并做了一些实验后,我相信当单个任务活动启动时已经在后台任务中,系统将kill all other 堆栈顶部的活动并恢复 singleTask 活动。
当然,这不是我从文档中得到的。
这是我的理论:
启动模式:活动 A:singleTask ,活动 B:标准
实验1
- 发射A;堆栈:[A]
- 从A发射B;堆栈:[A|B]
- 按主页;堆栈:[A|B]
- 从启动器启动 A;堆栈:[A](onDestroy 在 B 上被调用
在 A) 上的 onResume() 之前
实验2
- 发射A;堆栈:[A]
- 从A发射B;堆栈:[A|B]
- 从B发射A;堆栈:[A](onDestroy 在 B 上被调用
在 A) 上的 onResume() 之后
就我而言,我必须使用android:alwaysRetainTaskState="true"
尽管这并不理想,因为我确实希望在 10 分钟后清除堆栈,因为此建议是有道理的:
如果用户长时间离开任务
时间到了,系统清除任务
除 root 之外的所有活动
活动。当用户返回到
再次执行任务,只有根活动是
恢复了。系统的行为是这样的,
因为,经过长时间的
到时候,用户可能已经放弃了
他们以前做过并且现在正在做
返回到开始的任务
新鲜玩意。
来自任务和返回堆栈 https://developer.android.com/guide/components/tasks-and-back-stack.html#Clearing guide.
我希望这对其他人有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)