【发布时间】:2019-12-20 21:57:31
【问题描述】:
onNewIntent()在Activity生命周期中的真正用途是什么?我们如何使用这个方法?
【问题讨论】:
标签: android
onNewIntent()在Activity生命周期中的真正用途是什么?我们如何使用这个方法?
【问题讨论】:
标签: android
如果 Activity 在其包中将 launchMode 设置为“singleTop”,或者客户端在调用 startActivity(Intent) 时使用了 FLAG_ACTIVITY_SINGLE_TOP 标志,则会调用此方法。
如果您设置为单顶,如果 Activity 已经在历史堆栈的顶部运行,则不会启动它。它不会重新启动,只是从堆栈中显示。
【讨论】:
FLAG_ACTIVITY_REORDER_TO_FRONT(在我的代码中这样做),也会调用它。不知道为什么the official docs不提
FLAG_ACTIVITY_CLEAR_TOP 或“singleTask”或“singleInstance”启动模式时调用。
查看此链接onNewIntent()
在 manifest.xml 中,在一个活动标签集 launchmode="singleTask"
【讨论】:
以上答案不完整。
如果应用程序“A1”的活动“a1”具有启动模式“singleTask”或“singleTop”并且已经处于活动状态(在任务 t1 中)但已暂停,现在是另一个任务(例如任务 t2)(通常是另一个 android app) 向应用程序 A1 的活动 a1 发送一个意图,然后,android 不会在任务 t2 中创建另一个活动实例,而是通过向 a1 中的 onNewIntent(intent) 方法发出回调来从任务 t1 恢复 a1。
Tasks and back stack 是一个重要的概念,没有博客比android 文档本身解释得更好。
【讨论】: