zoukankan      html  css  js  c++  java
  • 任务栈Task的模式

      android每启动一个应用程序系统都会创建一个任务栈给这个应用。这个程序启动的activity都会加到这个栈中,activity的启动模式不同,在栈中存储销毁activity的方式也不同。在清单文件里可以设置activity的启动模式(红色标记出):

      <activity
                android:configChanges="keyboardHidden|orientation"
                android:launchMode="standard"
                android:name=".SecondActivity"
                android:label="secondactivity" >
                 <intent-filter>
                    <action android:name="com.example.multiactivity.SecondActivity" />
                    <action android:name="com.example.multiactivity.SecondActivity2" />
                    <action android:name="com.example.multiactivity.SecondActivity3" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>
    

      下面介绍一下4个启动模式

    1、standard模式:系统默认的模式,即不管activity是否重复都会像栈里加入activity,因此在按返回键时每次销毁一个activity,因此按多次销毁任务栈里所有的activity才会退出程序。

    2、singleTop模式:当一个activity指定为该模式时,在点击调用该activity时,会检测栈顶是否为该activity如果是就调用栈里的activity,否则才会重新创建一个新的activity放入栈里。

    应该场景:如浏览器的添加书签activity,如果用户在添加书签的activity里添加了20书签,如果默认模式用户想退出书签需要按20次返回键,并创建20个activity到栈里浪费空间,应用该模式则只会创建一个书签activity,避免糟糕用户体验。

    3、singleTask模式:当一个activity指定为该模式时,在加载该activity时候会检测栈里是否有该activity,如果有则直接调用栈里的activity,同时销毁掉调用activity上面的所有activity。

    应该场景:如浏览器activity开销非常大,需要初始化webkit/c++嵌入式浏览器内核,将该activity配置成这个该模式。

    4、singleInstance模式,该模式很极端,当一个activity指定为该模式时,调用该activity时系统不会将activity放入默认的分配的任务栈,而是创建一个新的任务栈放入新的任务栈内。并在默认的任务栈内引用新任务栈里的该activity,当再次调用该activity时候再次引用新建栈内的activity,当按返回键销毁该activity时候就会销毁新任务栈内的该activity,并且销毁默认任务栈内的对该activity的所有引用。

    应该场景:适用全局都有的activity应该,可以节约内存。如有道词典,在每个界面activity都有调用查词的activity,我们可以将查词的activity配置为该模式。

  • 相关阅读:
    hdu 5059 判断数字表示方式以及范围合法(int型之内)
    hdu1024 最大m子序列和
    POJ 1573 Robot Motion 模拟 难度:0
    POJ 2632 Crashing Robots 模拟 难度:0
    POJ 1068 Parencodings 模拟 难度:0
    ncs安装及初次运行
    POJ 1328 Radar Installation 贪心 难度:1
    POJ 3094 Quicksum 难度:0
    django.test.client 使用随记
    POJ 2255 Tree Recovery 树的遍历,分治 难度:0
  • 原文地址:https://www.cnblogs.com/bokeofzp/p/4722141.html
Copyright © 2011-2022 走看看