【问题标题】:Android: navigate through Activity hierarchyAndroid:浏览活动层次结构
【发布时间】:2016-04-21 16:38:43
【问题描述】:

我的应用程序有一个逻辑 Activity 层次结构,如下所示:

我正在尝试浏览活动,同时检查它们是否正在运行。例如:

主菜单 > 活动 A1 > 活动 A2。

现在如果我回到主菜单,有没有办法检查 Activity A2 是否已经在运行,如果是,直接跳转到那个 Activity?

我认为将android:launchMode="singleTask" 设置为活动A1 可能会解决问题,并阅读android:allowTaskReparenting 属性。但我不确定到底用什么来实现我想要的。

【问题讨论】:

  • 您是否有兴趣根据导航历史做出决策,或者特别是对后台堆栈重新排序?
  • @MaximG 导航历史并不是一个真正的问题,除非“A 类别”中的一个或多个活动已创建且未销毁 - 在这种情况下,我需要导航到最深处层次结构
  • @MaximG 我有,不过还是有点不清楚。将重新深入阅读它

标签: java android navigation


【解决方案1】:

使用一个宿主 Activity(作为导航控制器)和多个 Fragment 会更容易。当前 Fragment 将回调到 Activity,因此它将决定如何在您的图表上导航。

如果您真的想坚持包含许多活动的图表,则默认行为 - 同一流程中的所有活动都将处于活动状态。 Android 操作系统只能清理/杀死进程,而不是活动(文档对此有点模糊)。您可以将 Intent.FLAG_ACTIVITY_NO_HISTORY 用于中间活动,因此只有 root 会在堆栈中。

有一种方法可以使用ActivityManager 调查回栈,但它已被弃用。

【讨论】:

  • 理想情况下,我希望启动特定任务之上的任何活动(使用android:launchMode="singleTask 创建)。据我了解有没有办法做到这一点?也许我会重做所有东西并制作碎片
猜你喜欢
  • 2012-10-13
  • 1970-01-01
  • 1970-01-01
  • 2012-07-30
  • 2016-11-04
  • 1970-01-01
  • 2016-09-21
  • 1970-01-01
  • 2020-02-28
相关资源
最近更新 更多