【问题标题】:Launch singleTop Activity from another Task从另一个任务启动 singleTop Activity
【发布时间】:2014-02-11 21:31:46
【问题描述】:

我在启动 Activity 时无法理解 singleTop 标志。

在我的应用中,我有 2 个任务:

Task 1 : A,B,C,D

Task 2 : X,Y,Z

所有活动都是“标准” 模式,除了活动 D - 她有 “singleTop” .

两个任务都在运行。

任务1 [A,B,C,D]
任务2 [X,Y,Z]

现在是 Z 活动已打开。如果我从活动 Z 运行活动 D,我的堆栈会如何?

【问题讨论】:

  • @mohammedmomn 所以我的 Task2 会有一个堆栈 XYZD 吗?
  • 你怎么有2个任务?为什么你有2个任务?我希望你意识到在你的应用程序中有多个任务会给导航带来很多问题。此外,如果用户转到最近的任务列表,他们是否能够导航回您的每个任务?
  • @DavidWasser 2 tasks 这意味着 2 个应用程序在不同的任务中。

标签: android


【解决方案1】:

假设实际上有 2 个不同的应用程序(如您在评论中所述)并且活动 D 没有在清单中定义特定的 android:taskAffinity,那么将发生以下情况:

  • 如果 Activity Z 在没有任何特殊 Intent 标志的情况下启动 Activity D,则会在 Task 2 中启动一个新的 Activity D 实例,因此 Task 2 中的 Activity 堆栈将包含 [X,Y,Z,D]

  • 如果 Activity Z 启动 Activity D 并在启动时设置 Intent.FLAG_ACTIVITY_NEW_TASK,则任务 2 将进入后台,任务 1 将被带到前台,onNewIntent() 将在现有的 Activity 实例上调用任务 1 中的 D 和 onResume() 将在任务 1 中的 Activity D 的现有实例上调用。不会创建 Activity D 的新实例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 2014-12-20
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 2017-09-12
    相关资源
    最近更新 更多