Activity
的onNewIntent()
方法会在以下几种情况下被调用:
-
启动模式为
singleTop
时:当你的Activity
已经位于任务栈的顶部,并且用户尝试通过Intent
再次启动这个Activity
时(无论是通过startActivity()
还是startActivityForResult()
),onNewIntent()
方法会被调用,而不是创建这个Activity
的一个新实例。Intent
对象(即用于启动这个Activity
的Intent
)会作为参数传递给onNewIntent()
方法。 -
通过
FLAG_ACTIVITY_SINGLE_TOP
标志启动Activity时:即使Activity
的启动模式不是singleTop
,如果在启动Activity
的Intent
中设置了FLAG_ACTIVITY_SINGLE_TOP
标志,并且这个Activity
已经位于任务栈的顶部,那么同样会调用onNewIntent()
方法,而不是创建新的实例。 -
从通知(Notification)启动Activity时:如果你的应用从通知栏中的通知启动了一个
Activity
,并且这个Activity
已经存在于任务栈中(无论是位于顶部还是其他位置),根据Activity
的启动模式和Intent
中设置的标志,