在处理android.intent.action.VIEW时,Android在其他活动之上启动活动

时间:2016-03-31 07:47:28

标签: android android-intent

我有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.

3 个答案:

答案 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