onNewIntent 作用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34581102/article/details/81503014

当Activity启动模式为singleTask时,如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent())。不会调用onCreate方法,重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。

onNewIntent()非常好用,Activity第一启动的时候执行onCreate()—->onStart()—->onResume()等后续生命周期函数,也就时说第一次启动Activity并不会执行到onNewIntent(). 而后面如果再有想启动Activity的时候,那就是执行onNewIntent()—->onResart()——>onStart()—–>onResume(). 如果android系统由于内存不足把已存在Activity释放掉了,那么再次调用的时候会重新启动Activity即执行onCreate()—->onStart()—->onResume()等。

 当调用到onNewIntent(intent)的时候,需要在onNewIntent() 中使用setIntent(intent)赋值给Activity的Intent.否则,后续的getIntent()都是得到老的Intent。

猜你喜欢

转载自blog.csdn.net/qq_34581102/article/details/81503014
今日推荐