Activity的启动模式有哪几种,分别用于什么场景?
2018-01-05 10:47
176 查看
(1) standard: 标准模式,每次启动Acticity都会创建一个新的Activity实例,并且将其压如任务栈栈顶,而不管这个Activity是否已经存在(activity的三个回调都会启用,onCreate—onStart–onResume)
(2) singletop: 栈顶复用模式,这种模式下如果Activity已经位于任务栈的栈顶,那么此Activity不会重复创建,他启动的三个回调不会调用,同时Activity的onNewIntent方法被回调,如果Activity已经存在但没有位于栈顶,那么跟standard模式一样
(3) singtask:栈内复用模式,创建这样Activity的时候,首先会先确认他所需任务栈已经创建,否则先创建所需的任务栈,然后放入Activity,如果栈内已经有了Activity的实例那么,把这个Activity调到栈顶,同时回调onNewIntent方法,并且清楚当前Activity上面所有的Activity
(4) singleInstance:加强版的sngletask,这种模式的Acticity只能单独处于一个任务栈中,后续请求都不需要重新创建Activity,除非这个任务栈被系统删除
清晰地描述下onNewIntent和onConfigurationChanged这两个生命周期方法的场景?
(2) singletop: 栈顶复用模式,这种模式下如果Activity已经位于任务栈的栈顶,那么此Activity不会重复创建,他启动的三个回调不会调用,同时Activity的onNewIntent方法被回调,如果Activity已经存在但没有位于栈顶,那么跟standard模式一样
(3) singtask:栈内复用模式,创建这样Activity的时候,首先会先确认他所需任务栈已经创建,否则先创建所需的任务栈,然后放入Activity,如果栈内已经有了Activity的实例那么,把这个Activity调到栈顶,同时回调onNewIntent方法,并且清楚当前Activity上面所有的Activity
(4) singleInstance:加强版的sngletask,这种模式的Acticity只能单独处于一个任务栈中,后续请求都不需要重新创建Activity,除非这个任务栈被系统删除
清晰地描述下onNewIntent和onConfigurationChanged这两个生命周期方法的场景?
@Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); 这个方法会在singletop和singletask,栈内已经存在atcivity,不在走onCreate,而会调用onNewIntent可以在这里处理intent传过来的数据 }
@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); 有的时候我们会在AndroidManifest.xml中加入这样的属性 android:configChanges="orientation| keyboard " 这个属性的意思是在改变屏幕方向不在调用onCreate而去调用onConfigurationChanged方法,如果不设置这个属性,改变屏幕方向会重复调用onCreate,造成重复初始化 }
相关文章推荐
- Activity 的几种启动模式及应用场景
- 【安卓面试题】Activity和Task的启动模式有哪些?每种含义是什么?举例说明各自的应用场景
- Android四大组件---Activity之启动模式及启动模式的应用场景
- apache有几种工作模式,分别介绍下其特点,并说明什么情况下采用不同的工作模式?
- Activity的四种启动模式及其应用场景
- StartActivityForResult启动模式在不同场景下的不同结果
- Activity和Task的启动模式有哪些? 每种含义是什么?
- Activity启动模式(基于应用场景分析)
- Android Activity的4中启动模式及应用场景
- 老男孩教育每日一题-第83天-binlog是什么?记录的什么?有几种工作模式及企业应用场景
- Activity的启动模式及应用场景
- 设计模式用过哪些,应用场景是什么;单例模式有几种实现方式,代码怎么写?
- Activity 四个启动模式和若干intent标记,应用场景。
- Activity的启动模式以及onNewIntent和onConfigurationChanged这两个生命周期方法的场景
- Android之A面试题①Activity的四种启动模式及其应用场景
- Android开发之--activity的几种启动模式
- 彻底明白Activity启动模式-SingleTop、SingleTask、SingleInstance具体使用场景
- activity的启动模式有哪些?是什么含义?(一)
- activity的启动模式有哪些?是什么含义?(三)
- Activity四种启动模式的利用场景