Activity的onNewIntent()步骤何时会被调用及activity四种启动模式
2017-05-10 10:15
337 查看
Activity的onNewIntent()方法何时会被调用
OnNewIntent被调用的前提是:ActivityA已经启动过,处于当前应用的Activity堆栈中;当ActivityA的LaunchMode为SingleTop时,如果ActivityA在栈顶,且现在要再启动ActivityA,这时会调用onNewIntent()方法
当ActivityA的LaunchMode为SingleInstance,SingleTask时,如果已经ActivityA已经在堆栈中,那么此时会调用onNewIntent()方法
当ActivityA的LaunchMode为Standard时,由于每次启动ActivityA都是启动新的实例,和原来启动的没关系,所以不会调用原来ActivityA的onNewIntent方法
Activity的四中启动模式(LaunchMode)
1、standard 这是默认的模式。
这种模式下,当Intent发送的时候,Activity总是被创建一个新的出来单独工作。想象一下,如果有发送10个撰写邮件的Intent,那么将有10个不同的Activity启动。2、singleTop singleTop模式。
它的表现几乎和standard模式一模一样,一个singleTop Activity 的实例可以无限多,唯一的区别是如果在栈顶已经有一个相同类型的Activity实例,Intent不会再创建一个Activity,而是通过onNewIntent()被发送到现有的Activity。
3、singleTask
这种模式和standard以及singleTop有很大不同。singleTask模式的Activity只允许在系统中有一个实例。如果系统中已经有了一个实例,持有这个实例的任务将移动到顶部,同时intent将被通过onNewIntent()发送。如果没有,则会创建一个新的Activity并置放在合适的任务中。
4、singleInstance
这个模式非常接近于singleTask,系统中只允许一个Activity的实例存在。区别在于持有这个Activity的任务中只能有一个Activity:即这个单例本身。If anotherActivity is called from this kind of Activity, a new Task would be automatically created to place that new Activity. Likewise, if singleInstance Activity is called, new Task would be created to place the Activity.
相关文章推荐
- onNewIntent调用时机及Activity的四种启动模式
- Activity四种启动模式及onNewIntent()方法、taskAffinity属性分析
- Activity的onNewIntent()步骤何时会被调用
- Activity的onNewIntent()方法何时会被调用?
- 【Android】 Activity启动模式singleTask的数据传输 onNewIntent方法
- Activity的四种launchMode以及onNewIntent()的调用时机
- Activity的启动模式以及onNewIntent(Intent intent)
- Activity的onNewIntent()与onSaveInstanceState(Bundle outState)何时调用
- OnNewIntent 的调用,SingleStask 单例模式的Activity 当遇到新的Intent的时候,不会走onCreate方法了
- Activity的启动模式以及onNewIntent和onConfigurationChanged这两个生命周期方法的场景
- Activity的启动模式以及onNewIntent(Intent 4000 intent)
- android中Activity类的onNewIntent(Intent intent)方法何时调用
- [Android] 以singleInstance模式加载的Activity怎么接收以Bundle方式传递过来的参数 By onNewIntent() but not onResum
- [Android] 以singleInstance模式加载的Activity怎么接收以Bundle方式传递过来的参数 By onNewIntent() but not onResum
- Activity启动之SingleTask------onNewIntent的用法及原理
- 关于Activity的onNewIntent方法调用时机
- 不同启动模式下onActivityResult的调用时机问题
- Android-Activity中的onNewIntent()方法调用简析
- Activity单例模式与onNewIntent
- onNewIntent()方法何时会被调用