我有MainActivity(我们称之为A),它启动其他活动并处理android.intent.action.VIEW
。现在,我目前处于启动另外两项活动的状态,A推出B,然后B推出C:
A -> B -> C
现在,让我们说活动C触发android.intent.action.VIEW
...作为响应,活动A应该将活动D作为堆栈的最后一个活动启动,以便最终成为:
A -> B -> C -> D
然而,发生的事情是,我似乎最终会遇到活动A产生于顶部然后在其上产生D的情况,因此我的“堆栈”看起来像:
B -> C -> A -> D
当我按下后退按钮而不是回到C时,我不知何故最终进入活动A.此外,新的onNewIntent
触发Activity A
,但onStart
& onResume
。
有解决方法吗?或者我应该以某种方式处理android.intent.action.VIEW
?我只是想在Activity C上启动Activity D,当按下后退按钮时返回Activity C.
答案 0 :(得分:0)
我认为您可以在活动C中按某些内容时启动活动D.然后应该按照您的意愿工作。
答案 1 :(得分:0)
使用在Activity C
中注册Activity A
的侦听器。通知监听器,以便Activity C
可以启动由Activity D
Activity A
答案 2 :(得分:0)
我已将Activity A
指定为singleInstance
来解决问题。此外,我已将其他活动launchMode
更改为singleTop
,现在一切都按预期进行。这篇文章帮助:
Understand Android Activity's launchMode: standard, singleTop, singleTask and singleInstance