美文网首页
记一次SingleTask的坑:App从后台切回前台后都会重新回

记一次SingleTask的坑:App从后台切回前台后都会重新回

作者: Zenfer | 来源:发表于2019-08-16 13:27 被阅读0次

    前情提要:

    按正常的App开发设计,每个App都会有启动页(也就是闪屏页)和首页(通常叫MainActivity),而这时候首页的启动模式大多数人会在 ==AndroidManifest==设置 ==android:launchMode="singleTask"==

    可是最近入职的新公司做的App没有启动页,只有首页,而我按照惯例给首页设置了singleTask的启动模式,然后App就"炸"了!

    异常描述

    这个"炸"不是说App崩溃了,而是当我们启动App后,不管我们是从首页跳转到A页面,或者是从首页跳转到B页面再跳转到C页面,只要我们点击Home键返回桌面,再点击桌面图标把App从后台切回前台,系统都会帮我们启动一次首页,没错,就是启动一次首页

    而基于首页的launchMode是SingleTask,在重启首页之前Activity栈中处于首页之上的所有Activity都会被全部销毁,重新回到首页
    (如果对启动模式不了解的,可以看这篇文章[Android:图解四种启动模式 及 实际应用场景解说]

    没想到啊,我一直以为是业务代码中有什么地方出问题重新启动首页,后来通过断点排除了所有可能性,最后对比以前做过的软件,才想到了可能是因为缺少了启动页导致的问题。

    解决方式

    使用singleTask的前提:

    1. 很多时候是为了保持首页的唯一性
    2. 为了从子页面跳回首页的之后不必去写销毁其他子页面的代码

    解决方法:

    目前只能通过代码去销毁其他子页面后返回首页了

    问题的原因

    还不知道为什么启动页如果设置singleTask会出现这种问题,如果有大神知道的话,麻烦指导一下,谢谢!

    相关文章

      网友评论

          本文标题:记一次SingleTask的坑:App从后台切回前台后都会重新回

          本文链接:https://www.haomeiwen.com/subject/wubfsctx.html