Android Activity 启动模式_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > Android Activity 启动模式

Android Activity 启动模式

 2014/11/25 18:13:23  冰雪之淚  程序员俱乐部  我要评论(0)
  • 摘要:启动模式类别standard:每次启动activity都会创建新的实例对象。activity可以在多个不同的任务中被实例化多个对象。singleTop:如果当前任务栈顶有activity的实例对象,则调用onNewIntent()获取当前实例对象,否则在当前任务栈中实例化新对象。singleTask:任务栈的只有一个activity实例对象,如果已存在activity实例对象则调用onNewIntent()获取当前实例对象。singleInstance
  • 标签:android 模式 启动 Activity

启动模式类别

  • standard:每次启动activity都会创建新的实例对象。activity可以在多个不同的任务中被实例化多个对象。
  • singleTop:如果当前任务栈顶有activity的实例对象,则调用onNewIntent()获取当前实例对象,否则在当前任务栈中实例化新对象。
  • singleTask:任务栈的只有一个activity实例对象,如果已存在activity实例对象则调用onNewIntent()获取当前实例对象。
  • singleInstance:由系统创建新的任务栈并维护唯一的activity实例对象

定义启动模式

  1. 配置manifest文件:定义标签的launchMode属性值(standard,singleTop,singleTask,singleInstance),默认值是standard

  2. 设置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不在恢复离开前的状态
上一篇: 反射应用 下一篇: 没有下一篇了!
发表评论
用户名: 匿名