android - Activity singleTask后台切换错误

 mobiledu2502858253 发布于 2022-10-30 02:36

场景1:ActivityA启动ActivityB,ActivityB启动ActivityC,此时用户看到的是ActivityC。ActivityB的启动模式是singleTask。此时用户点击home键,再点击应用图标返回,看到的是ActivityC。

场景2:ActivityA启动ActivityB,ActivityB启动ActivityC,此时用户看到的是ActivityC。ActivityA的启动模式是singleTask。此时用户点击home键,再点击应用图标返回,看到的是ActivityA。

以上两个场景ActivityA都是App入口Activity。

我的问题是:为什么会出现场景2这样的现象,如果是因为入口Activity被设置了singleTask,点击应用图标时重启了入口Activity的话,场景2是没有问题的。但如果是这样,场景1里的ActivityA不应该也会被重启吗?用户看到的不应该是ActivityA了吗?为什么能够到ActivityC呢。总之我觉得这两个是非常矛盾的,希望了解的开发者给解释一下。

2 个回答
  • 设置singleTask的两个情况

    • 当你启动的singleTaskActivity不是栈底(即前面有启动Activity)时,他会处与当前栈的栈顶,如果其上存在Activity则会移除。这就是你的第一种场景。

    • 当你启动的singleTaskActivity是栈底(即第一个启动的Activity)时,他会启动一个新栈,与后面开启的Activity不是处于一个栈。这就是你的第二种场景。

    2022-11-12 01:48 回答
  • 场景2 的activityA 是什么启动模式?

    2022-11-12 01:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有