zoukankan      html  css  js  c++  java
  • 任务栈的描述

    1.启动任务栈
       第一种,动作设置为“android.intent.action.MAIN”,类别设置为“android.intent.category.LAUNCHER”,
    可以使这个ACT(activity)实例称为一个任务栈的入口,拥有这种类型的intent-filter的ACT类型的图
    表和名字也会显示在application launcher中。
       第二种,即是采用用“singleInstance”模式,另外开个一个唯一ACT的栈.

     第三种, 在Intent中加入了“FLAG_ACTIVITY_NEW_TASK”。

      当传递给startActivity()的Intent对象包含FLAG_ACTIVITY_NEW_TASK标记时,系统会为需要启动的activity寻找与当前activity不同的task。如果要启动的activity的affinity属性与当前所有的task的affinity属性都不相同,系统会新建一个带那个affinity属性的task,并将要启动的activity压到新建的task栈中;否则将activity压入那个affinity属性相同的栈中。

    提示:如果“singleInstance”模式同时还加上上面的类型,则当前ACT也是一个单独ACT的任务栈,而应用其他ACT会组成另外一个任务栈

     

    2.启动模式
    <activity>标签的launchMode属性可以设置为四种不同的模式:
    “standard”   :(默认模式)反复创建新实例,如A-B-A-C-D-B-A…依次随便加
    “singleTop” : 避免出现类似A-B-C-D-D…,如D采用"singleTop",则是A-B-C-D 
    “singleTask”:    如A采用"singleTask",则在“standard”中类似A-B-C-D-A任务栈,在“singleTask”只会剩下A,BCD都会被回收
    “singleInstance” :  此模式你另外开个一个任务栈,且单独只有一个ACT.主要用于多个应用共享同一个activity。

    提示:如果该Activity已经启动了,再次调用该activity就调用OnNewIntent。

    3.清理任务栈
    默认:如果一个任务栈在很长的一段时间都被用户保持在后台的,那么系统就会将这个任务栈中除了根ACT以外的
    其它所有ACT全部清除掉。当用户再将任务栈切换到前台,则只能显示根activity了。
        1)alwaysRetainTaskState属性
        如果将根ACT的alwaysRetainTaskState属性设置为“true”,则即便一个任务栈在很长的一段时间都被用户
    保持在后台的,系统也不会对这个任务栈进行清理。
        2)clearTaskOnLaunch属性
        如果将根ACT的clearTaskOnLaunch属性设置为“true”,那么只有这个任务栈切换到了后台,那么系统就会
    将这个任务栈中除了根ACT以外的其它所有ACT全部清除掉。即和alwaysRetainTaskState的行为完全相反。
        3) finishOnTaskLaunch属性
        这个属性的行为类似于clearTaskOnLaunch,但是此属性作用于单个的ACT对象,而不是整个任务栈。当这个
    任务栈切换到了后台,这个属性可以使任务栈清理包括根ACT在内的任何ACT对象。 

    4.还复杂点可以加入亲属关系taskAffinity


    总结:简单的说,即是开一个(或几个)任务栈,在每个任务栈上添加ACT,遇到“singleTask”的则回到之前存在的ACT,把夹在中间的ACT全部回收

  • 相关阅读:
    CefSharp 无法输入中文的问题
    CEF编译 执行gn args outRelease_GN_x86异常
    【Cef编译】 CefSharp编译失败,检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”
    ResourceDictionary主题资源替换(二) :编译期间,替换主题资源
    C# 打开文件/跳转链接
    C# 动态加载资源
    一套简约漂亮的响应式博客园主题皮肤分享给你们(一)
    Grok Debugger安装配置
    深入理解Java AIO(一)—— Java AIO的简单使用
    深入理解NIO(四)—— epoll的实现原理
  • 原文地址:https://www.cnblogs.com/xitang/p/2195997.html
Copyright © 2011-2022 走看看