问题描述
我的应用有两个活动:A和B。A-是主要活动(默认为启动),它具有操作android.intent.action.MAIN
和类别android.intent.category.LAUNCHER
,并且A活动已覆盖{{1} },这意味着如果我们尝试启动活动A并且A不在任务的顶部,那么OS将创建一个新的A实例并将其放在顶部。
步骤:
- 从应用程序菜单中启动活动A(单击应用程序图标)
- 单击活动A屏幕中的按钮以启动B(现在活动堆栈看起来像A-> B)
- 按下主屏幕按钮再次查看应用程序菜单并最小化应用程序
- 再次单击应用程序图标以启动我的应用程序
结果:打开的活动B(堆栈看起来像A-> B)
所以我的问题是,如果我的带有任务堆栈的后台应用程序看起来像A-> B(B放在顶部,A和B尚未完成,它们处于onStop状态),为什么OS不会创建A的新实例,并且只需在应用程序菜单上点击应用程序图标时打开当前堆栈(该点击会以启动器的意图将意图发送到我的应用程序,并且在具有启动模式singleTop的活动A中描述了启动器)
我认为这是因为A具有lanchMode="singleTop"
,因此可以打开A的新实例(具有堆栈A-> B-> A)。似乎该应用程序在后台处于活动状态(处于lanchMode="singleTop"
状态,并且其打开意图与第一次相同,那么Android OS仅显示当前应用程序任务,但是我找不到任何证明那。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)