Android:Activity(五):Activity加载模式

Activity加载模式

    配置Activity时,可指定android:launchMode属性来配置Activity加载模式,Android采用Task栈来管理多个

    Activity:先启动的Activity将放入栈底,后启动的Activity将放在栈顶;

    当我们启动一个应用时,Android就会为之创建一个Task,然后启动这个应用的入口Activity中配置

    为MAIN和LAUNCHER的Activity.Android没有提供访问Task的API,所以只能使用Activity的getTaskId()方法

    来获取它所在的Task的ID;


    Android加载模式的作用:

        负责管理实例化Activity,加载Activity的方式,并可以控制Activity与Task之间的加载关系!


    Android有4种加载模式:

        1.standard模式(默认)

           使用此模式启动Activity时,Android总会为目标Activity创建一个新的实例,并将该Activity添加到当前

           Task中,这种模式不会启动新的Task,新的Activity将被添加到原有的Task中!

        2.singleTop模式

            使用此模式启动Activity时,如果被启动的目标Activity已经位于栈顶,系统不会重新创建目标Activity

            的实例,而是直接复用已有的Activity。

        3.singleTask模式

            使用此模式启动的Activity在同一个Task内只有一个实例,当系统采用SigleTask模式启动目标Activity时,

            可分为三种情况:

                一.如果将要启动的目标Activity不存在,系统将会创建目标Activity的实例,并将它加入Task栈顶。

                二.如果将要启动的目标Activity已经位于Task栈顶,此时与SingleTop模式的行为相同。

                三.如果将要启动的目标Activity已经存在,但没有位于Task栈顶,系统将会把位于该Activity上面

                    的所有Activity移出Task栈,从而使得目标Activity转入栈顶。

        4.singleInstance模式

            使用此模式启动的Activity时,系统保存无论从哪个Task中启动目标Activity,只会创建一个目标

            Activity实例,并会使用一个全新的Task栈来加载该Activity实例,可分为如下两种情况:

                一.如果将要启动的目标Activity不存在,系统会先创建一个全新的Task,在创建目标Activity的实例,

                    并将它加入新的Task的栈顶.

                二.如果将要启动的目标Activity已存在,无论它位于哪个应用程序中,无论它位于哪个Task栈中,系统

                    将会把该Activity所在的Task转到前台,从而使用该Activity显示出来.


转载于:https://my.oschina.net/Ccx371161810/blog/263539

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值