一个应用的Activity可供多种方式调用启动,当多个调用希望只有一个Activity的实例存在,并且还要区分是被谁启动或是已经启动被谁拉到前台来的,这就需要Activity的onNewIntent(Intent intent)方法了。只要在Activity中加入自己的onNewIntent(intent)的实现加上Manifest中对Activity设置lanuchMode=“singleTask”,然后在不同调用的地方给intent设置不同的值就可以了。
Activity第一次启动的时候执行onCreate()-->onStart()-->onResume()等生命周期函数,不会执行到onNewIntent(). 而后面如果再有想启动Activity的时候,那就是执行onNewIntent()-->onResart()-->onStart()-->onResume(). 如果android系统由于内存不足把已存在Activity释放掉了,那么再次调用的时候会重新启动Activity即执行onCreate()-->onStart()-->onResume()等。当调用到onNewIntent(intent)的时候,需要在onNewIntent() 中使用setIntent(intent)赋值给Activity的Intent.否则,后续的getIntent()都是得到上一次设置或第一次启动时的Intent。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)