我遇到了一个奇怪的问题
- 活动 A 被调用,片段 A 已附加到它。
- 方法被调用(onCreate,onStart,onResume(。
:我收到了通知,我选择了该通知,目的是进行活动 A。
块引用 (intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP(; )
打开活动 A 时,它将调用以下方法。
(onPause,onCreate,onStart,onResume(Fragment detached(和 on Destroy(
为什么在我已经调用CLEAR_TOP时为活动的旧实例调用销毁。
有人可以帮助我是什么原因吗?
如何检查堆栈中是否已有任何实例处于挂起状态,或者如何清除所有内容? 我不能使用单实例,因为在通知选项卡上,我正在重定向到不同的片段。
如果仅使用FLAG_ACTIVITY_CLEAR_TOP
则将清除所有活动实例,返回到并包括目标Activity
的实例,然后创建目标Activity
的新实例。
如果要重用现有实例,则需要指定FLAG_ACTIVITY_CLEAR_TOP
和FLAG_ACTIVITY_SINGLE_TOP
,如下所示:
intent.addFlags(FLAG_ACTIVITY_CLEAR_TOP|FLAG_ACTIVITY_SINGLE_TOP);
这会将所有活动实例清除回(但不包括目标Activity
,并使用新Intent
在目标Activity
上调用onNewIntent()
。