华为鸿蒙系统 or EMUI10以上系统(包括10),冷启动一个
2021-09-23 本文已影响0人
小院里栽棵树
记录一个任务栈的问题~
问题描述:
app有2个任务栈。 任务栈1 中有页面 AActivity ,BActivity ,CActivity ,任务栈2中有DActivity,EActivity 。
app的页面由A -> B -> C -> D -> E这样依次跳转。
在D页面时,我们把app置于后台,然后冷启动一个其他的app,又或者是接电话场景,在通话结束后,我们再次打开我们的app,会发现app处于C页面,而D和E页面已经被finish了。
额... 这问题很操蛋,最开始我以为是系统内存不足,app被回收,然后在温启动时,系统只能恢复主任务栈 。 但后面发现,系统压根就没回收app ~
排查后发现是因为我在清单文件中设置了excludeFromRecents
属性,原因当然是产品希望第二个任务栈不在最近任务列表中展示, 但在EMUI10及以上 & 鸿蒙系统上 ,华为做了个比较无语的优化~ 那就是当华为手机 冷启动一个app时,它会去清空所有的隐藏任务栈。mf ,这是个什么优化!!结果自然而然的就是导致了我们D E页面被finish了,用户下次打开app时,就回到了C页面,因为涉及到华为系统级的优化,目前我也是没什么解决办法,只能先干掉了excludeFromRecents
属性。