为了账号安全,请及时绑定邮箱和手机立即绑定

Android:launchMode =“ singleTask”中的错误?->活动堆栈未保留

Android:launchMode =“ singleTask”中的错误?->活动堆栈未保留

慕娘9325324 2019-12-11 13:09:38
我的主要活动A已设置android:launchMode="singleTask"在清单中。现在,每当我从那里开始其他活动时,例如B,按HOME BUTTON电话上的返回主屏幕,然后再次返回我的应用程序,方法是按应用程序的按钮或HOME BUTTON长按以显示我最近的应用程序,不会保留我的活动堆栈并直接返回A而不是预期的活动B。这里有两种行为:Expected: A > B > HOME > BActual: A > B > HOME > A (bad!)是否有我缺少的设置,或者这是一个错误?如果是后者,在修正错误之前是否有解决方法?仅供参考:这个问题已经在这里讨论了。但是,似乎还没有任何真正的解决方案。
查看完整描述

3 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

这不是错误。singleTask启动现有活动时,堆栈中位于其之上的所有其他活动将被销毁。


当您HOME再次按下并启动活动时,ActivityManger调用意图


{act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]flag=FLAG_ACTIVITY_NEW_TASK|FLAG_ACTIVITY_RESET_IF_NEEDED cmp=A}

因此,结果为A> B> HOME>A。


当A的launchMode为“标准”时,情况有所不同。包含A的任务将来到前台,并保持与以前相同的状态。


您可以创建“标准”活动,例如。C作为启动器,C的onCreate方法中的startActivity(A)


要么


只要将意图调用给A即可删除launchMode="singleTask"and set FLAG_ACTIVITY_CLEAR_TOP|FLAG_ACTIVITY_SINGLE_TOP标志



查看完整回答
反对 回复 2019-12-12
  • 3 回答
  • 0 关注
  • 348 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信