Activity四种启动方式简述

Activity的启动模式分为四种。(standard、singleTop、singTask、singleInstance);
启动模式可在AndroidManifest.xml中,通过<activity>标签的android:launchMode属性设置。

  • 一、standard模式

    特点:1.Activity的默认启动模式
              2.每启动一个Activity就会在栈顶创建一个新的实例。例如:闹钟程序
    缺点:当Activity已经位于栈顶时,而再次启动Activity时还需要在创建一个新的实例,不能直接复用。

 

 

  • 二、singleTop模式

    特点:该模式会判断要启动的Activity实例是否位于栈顶,如果位于栈顶直接复用,否则创建新的实例。 例如:浏览器的书签
    缺点:如果Activity并未处于栈顶位置,则可能还会创建多个实例。

 

  • 三、singleTask模式

    特点:使Activity在整个应用程序中只有一个实例。每次启动Activity时系统首先检查栈中是否存在当前Activity实例,如果存在
              则直接复用,并把当前Activity之上所有实例全部出栈。例如:浏览器主界面

 

  • 四、singleInstance模式

    特点:该模式的Activity会启动一个新的任务栈来管理Activity实例,并且该势力在整个系统中只有一个。无论从那个任务栈中    启动该Activity,都会是该Activity所在的任务栈转移到前台,从而使Activity显示。主要作用是为了在不同程序中共享一个Activity
        实例。

总结:Activity 的四种启动模式各有特色,在实际开发中,根据实际情况来选择合适的启动方式即可。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Android系统中,Activity有四种启动模式,分别是: 1. Standard模式:默认的启动模式,每次启动Activity都会创建一个新的实例。如果在应用程序中多次启动同一个Activity,就会创建多个Activity实例。它的特点是可以在任何地方启动Activity,不会影响其他Activity的生命周期。 2. SingleTop模式:如果要启动Activity在栈顶已经存在,那么不会创建新的实例,而是复用栈顶的Activity,并调用onNewIntent()方法传递参数。如果要启动Activity不在栈顶,那么就会创建新的实例。它的特点是可以避免创建多个实例,但是如果Activity已经存在且不在栈顶,还是会创建新的实例。 3. SingleTask模式:如果要启动Activity在栈中已经存在,那么系统就不会创建新的实例,而是将栈中该Activity上面的所有Activity全部出栈,使该Activity成为栈顶。如果要启动Activity不在栈中,那么就会创建新的实例。它的特点是可以保证一个Activity只有一个实例,并且在栈中只有一个实例。 4. SingleInstance模式:一个独立的栈会为该Activity创建,且该栈中只有该Activity的实例。如果要启动Activity已经存在于独立栈中,那么就会复用该Activity的实例。如果要启动Activity不在独立栈中,那么就会创建新的实例并放入该独立栈中。它的特点是可以保证在整个系统中只有一个实例,并且该实例会独立于其他Activity

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值