onNewIntent

xiaoxiao2021-02-28  119

launchMode为singleTask,singleTop的时候,通过Intent启到一个Activity,如果系统已经存在一个实例,系统就会将请求发送到这个实例上,但这个时候,系统就不会再调用通常情况下我们处理请求数据的onCreate方法,而是调用onNewIntent方法,如下所示:

protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent);//must store the new intent unless getIntent() will return the old one processExtraData(); }

如果不调用setIntent(intent)方法,那么当使用getIntent()方法时获取到的就是原先旧的intent。

如果single task Activity处于任务栈的顶端,也就是说之前打开过的Activity,现在处于onPause、onStop状态的话,其他应用再发送Intent的话,执行顺序为: onNewIntent,onRestart,onStart,onResume。 注意顺序,onResume还是会被调用的。

转载请注明原文地址: https://www.6miu.com/read-19438.html

最新回复(0)