活动堆栈未清除



我遇到了一个奇怪的问题

  1. 活动 A 被调用,片段 A 已附加到它。
  2. 方法被调用(onCreate,onStart,onResume(。

:我收到了通知,我选择了该通知,目的是进行活动 A。

块引用 (intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP(; )

  1. 打开活动 A 时,它将调用以下方法。

  2. (onPause,onCreate,onStart,onResume(Fragment detached(和 on Destroy(

    为什么在我已经调用CLEAR_TOP时为活动的旧实例调用销毁。

有人可以帮助我是什么原因吗?

如何检查堆栈中是否已有任何实例处于挂起状态,或者如何清除所有内容? 我不能使用单实例,因为在通知选项卡上,我正在重定向到不同的片段。

如果仅使用FLAG_ACTIVITY_CLEAR_TOP则将清除所有活动实例,返回到并包括目标Activity的实例,然后创建目标Activity的新实例。

如果要重用现有实例,则需要指定FLAG_ACTIVITY_CLEAR_TOPFLAG_ACTIVITY_SINGLE_TOP,如下所示:

intent.addFlags(FLAG_ACTIVITY_CLEAR_TOP|FLAG_ACTIVITY_SINGLE_TOP);

这会将所有活动实例清除回(但不包括目标Activity,并使用新Intent在目标Activity上调用onNewIntent()

最新更新