天天看点

Android onNewIntent

protected void onNewIntent(Intent

API level 1

This is called for activities that set launchMode to "singleTop" in their package, or if a client used the ​

​FLAG_ACTIVITY_SINGLE_TOP​

​​ flag when calling ​

​startActivity(Intent)​

​. In either case, when the activity is re-launched while at the top of the activity stack instead of a new instance of the activity being started, onNewIntent() will be called on the existing instance with the Intent that was used to re-launch it.

An activity will always be paused before receiving a new intent, so you can count on ​

​onResume()​

​ being called after this method.

Note that ​

​getIntent()​

​​ still returns the original Intent. You can use ​

​setIntent(Intent)​

​ to update it to this new Intent.

Parameters
intent The new intent that was started for the activity.
See Also
  • ​getIntent()​

  • ​setIntent(Intent)​

  • ​onResume()​

调用 onNewIntent  有两种情况:

第一种: 这个 Activity A设置为 SingleTop 启动模式。也就是位于栈顶就不新创建。

第二种: 启动一个 Activity A时把 Intent flag 设置为 ​

​FLAG_ACTIVITY_SINGLE_TOP​

​如果重新启动这个 Activity A,当 A 位于栈顶时(这样 A 不用新建实例),onNewIntent 将会被调用。​

另外,如果有必要更新获取的 Intent,需要调用下 setIntent。这个方法一般也是和 onNewIntent 连用的。