onNewIntent 用法

onNewIntent的用法很奇怪,API提供的解释是说必须将launchMode设置为singleTop才会调用它,而不去重新生成其对应Activity实例。

而另外一些博客和我自己测试的情况是必须将launchMode设置为singleTask,才会直接调用onNewIntent(不再重新生成Activity);而是用singleTop则会调用onCreate方法重新生成了Activity实例。

我测试的方法是:

1、将一个Activity A启动模式设置为singleTask

2、启动A

3、按HOME键回到桌面

4、启动Activity B

5、在B中是用间接调用 A

结论:launchMode 为singlTop时回调用onCreate,为singleTask时调用onNewIntent。

猜测  onNewIntent 会在一个Activiy被重用(第N>1次进入)时调用。luanchMode为singleTop不会调用onNewIntent,可能是A已经不在栈顶,不会被重用;

原文地址:https://www.cnblogs.com/lipeil/p/3056730.html