gpt4 book ai didi

android - 如何让我的 Activity 的单个实例与后台堆栈一起工作?

转载 作者:行者123 更新时间:2023-11-29 19:16:30 26 4
gpt4 key购买 nike

我有一个带有 MainActivityChildAaActivityChildBbActivity 的应用。

MainActivity 可以将我们发送到任一子 Activity ,用户可以根据需要在两个子 Activity 之间移动。

但是,每个 Activity 只能有一个实例。

问题是,如果我让子 Activity singleInstance,那么它们都是单独的任务,切换到另一个应用程序并返回到子 Activity 意味着 onBackPress 我退出应用程序(当我应该返回 MainActivity 时)

如果我将 launchMode 保留为标准,那么我将获得子 Activity 的多个实例,尤其是在两个子 Activity 之间来回移动时。

如果我使用singleTop,那么我就会遇到这两个问题

如果我对子项使用 noHistory,我将无法在它们之间自由移动(第一次向后按会使我返回到 MainActivity)

使用 isTaskRoot() 显然无法与 singleInstance 一起修复应用程序退出错误,因为它始终为真(并且对其他情况没有用)

我应该如何正确地实现我需要的行为?

  • 返回堆栈中每个 Activity 只有一个实例
  • 都在同一个任务中/切换应用后不退出 onBackPress

最佳答案

您不需要任何特殊的启动模式。每当您启动子 Activity 时,请使用以下标志:

intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

这会将 Activity 的现有实例移动到任务堆栈的前面(如果有的话),或者创建一个新实例(如果没有现有实例)。

关于android - 如何让我的 Activity 的单个实例与后台堆栈一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43357543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com