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已经不在栈顶,不会被重用;
onNewIntent与launchMode
本文探讨了Android中Activity的onNewIntent方法与launchMode之间的关系。通过实验发现,当Activity的启动模式设置为singleTask时,会调用onNewIntent方法而不是重新创建Activity实例。
5699

被折叠的 条评论
为什么被折叠?



