Android Activity 启动模式
启动模式类别
- standard:每次启动
activity
都会创建新的实例对象。activity
可以在多个不同的任务中被实例化多个对象。 - singleTop:如果当前任务栈顶有
activity
的实例对象,则调用onNewIntent()
获取当前实例对象,否则在当前任务栈中实例化新对象。 - singleTask:任务栈的只有一个
activity
实例对象,如果已存在activity
实例对象则调用onNewIntent()
获取当前实例对象。 - singleInstance:由系统创建新的任务栈并维护唯一的
activity
实例对象
定义启动模式
-
配置manifest文件:定义标签的launchMode属性值(
standard,singleTop,singleTask,singleInstance
),默认值是standard
。 -
设置Intent的flag变量:设置Intent的flag字段值(
FLAG_ACTIVITY_NEW_TASK,FLAG_ACTIVITY_SINGLE_TOP,FLAG_ACTIVITY_CLEAR_TOP
)FLAG_ACTIVITY_NEW_TASK
:standard启动模式FLAG_ACTIVITY_SINGLE_TOP
:singleTop启动模式FLAG_ACTIVITY_CLEAR_TOP
:如果当前任务栈中已有activity
实例对象,则清空上面的其他activity并调用onNewIntent()
激活此实例对象
清空任务栈
默认情况下,当某一任务长时间不使用时,Android系统会情况当前任务中除了跟activity之外的所有activity。
- alwaysRetainTaskState:当任务栈的跟activity的属性值设置true后,即使长时间离开某一任务,系统依然保留所有activity
- clearTaskOnLaunch:当任务栈的跟activity的属性值设置true后,用户离开此任务后,就会清空此任务栈中的所有activity
- finishOnTaskLaunch:正对当前activity有效,当用户离开此任务后,此activity不在恢复离开前的状态
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。