如何在堆栈顶部启动另一个包?

时间:2014-10-13 21:30:34

标签: android android-package-managers launching-application launchmode

我必须像这样app app:

A-> B-C-> d

X-> Y

在Y中,我想使用getLaunchIntentForPackage(“package”)来到D,但是我到了 A.我应该使用哪种启动模式等?如果可能的话,我想使用singleTask for ABCD。 此外,在D和我按回家并再次通过Icon for A启动然后根据启动模式我没有到达D(我想要),但是到A. DCB被清除。

我尝试了很多东西,但我只是不明白它是如何工作的。我似乎没有得到相应的行为。

1 个答案:

答案 0 :(得分:1)

所以what you observe is expected. The launch modes are defined per activity,而不是每个应用/包级别。

  • 因此,要从Y升级到D,您需要使用设置为FLAG_ACTIVITY_NEW_TASK的意图标记启动活动D,这将确保您进入现有D,已在您的第一项任务中排在首位(A-> B-> C-> D)

  • 要从主屏幕(启动器图标)may need to try below options for SingleTask mode执行相同的操作,因为您要保留现有堆栈(A-> B-> CD),只需要转到{ {1}};引用链接:

    D
    • 因此,将主要活动启动模式设置为标准,它将允许您按原样保留堆栈(上面的第二个+点)。您仍然可以使用其他应用中的intent-flags(例如:FLAG_ACTIVITY_NEW_TASK)在"+ For launchMode=singleTask if there is an intent_filter in the manifest the task stack is always cleared after returning to Home and re-launching (returns to main activity instead of last activity). + For launchMode=standard re-launch from Home instead returns to last activity in task (as expected). + If there is no intent_filter listed then even with launchMode=singleTask re-launch from Home returns to the last activity in the task" 模式下启动此功能。意图标记override manifest launch modes, see here