一、Activity的启动模式有哪几种,分别用于什么场景
首先需要知道activity是以任务栈的方法存储的,接下来描述启动模式的区别。
1.stand
该模式是activity的默认模式,打开一个activity就将其放在任务栈的顶部,一个一个的堆叠。不会管任务栈内是否已经存在。
这是最常用的启动模式,没有什么意外都是以此模式启动
2.singleTask
该模式是栈内复用模式,如果在任务栈中已经存在该activity的实例,那么就会将其取出放到栈顶,而且该模式会清除在其之上的实例。并且并不会重建当前activity,而是会走onNewIntent的方法
3.singleTop
该模式是栈顶复用模式,如果该实例正在任务栈的栈顶,那么就会直接使用,而不会重新创建实例,一样会调用onNewIntent方法
4.singleInstance
独立栈模式,以该模式启动会将此实例放入一个新的任务栈里,只有这一个实例,会调用onNewIntent的方法。
二、onNewIntent 和 onConfigurationChanged
1.onNewIntent
当activty以singleTop,singleTask,singleInstance启动,如果存在当前的实例,就会调用activity的onNewIntent.如果以startactivityresult启动,就不会调用onNewIntent,而是会重建
2.onConfigurationChanged
该方法会在系统配置发生改变(软键盘,字体,屏幕方向)的时候调用,前提是你在manifast文件里配置相应的属性. 如果没有,那么该activity会销毁重建
Activity的启动模式
最新推荐文章于 2022-09-25 12:32:51 发布