Activity以及Activity的四种启动模式

本文详细介绍了Android应用程序中的核心组件——Activity,包括其基本概念、四种启动模式的特点及应用场景。standard模式适用于大多数情况,singleTop模式避免重复创建已位于栈顶的Activity,singleTask模式确保Activity在应用中仅有一个实例,而singleInstance模式则确保在整个系统中Activity只有一个实例。

Activity的概述

    了解一下Activity,Activity是Android应用程序的四大组件之一,它是负责管理Android应用程序的前端用户界面,一个应用程序一般会包含若干个Activity,么一个Activity组件负责一个用户的界面展示。同时Activity是通过setContentView()方法来显示指定组件的。setContentView()方法既可以接受View对象为参数,也可以接受布局文件对应的资源id为参数。

Activity的四种启动模式

一、standard模式(点击几次,就回几次

    它是Activity默认的一种启动模式,一般的Activity不进行手动修改,默认的都是standard模式启动。在standard模式下,每当启动一个新的Activity,它就会进入任务栈,并且处于栈顶的位置,系统也不会判断该Activity在栈中是否存在,它每次启动都会创建一个新的实例。例如我们建一个测试项目,设计一个Button如下,

然后启动Activity,且插入一条Log.d("FirstActivity",this.toString())语句,目的是用日志记录点击地址时间,以便观察

运行的时候你点击几次就返回几次。

二.singleTop模式

     singleTop与standard类似,区别在于,当启动的Activity已经位于栈顶时,则直接使用它,不用创建新实例。如果启动的Activity没有位于栈顶时,则创建一个新实例位于栈顶。


它的特点是不会打开多个已经打开的页面

三.singleTask模式

     它是Activity在整个应用程序中只存在一个实例,每次启动Activity时系统首先会检查栈中是否存在该Activity实例,如果发现已经存在则直接使用该实例,并将当前Activity之上的所有Activity出栈。如果没有发现则创建一个新实例。




它的特点是打开已经存在的,移除后面的。

四.singleInstance模式

     在程序开发当中,,如果需要Activity在整个系统中都只有一个实例,这时就需要用到singleInstance模式。它区别于以上三种模式在于它指定singleInstance模式的Activity会启动一个新的任务来管理


采用这种模式分为两种可能:

一是如果要启动的Activity不存在,系统会先创建一个新的任务栈,再创建该Activity的实例,并把该Activity放入栈顶。

二是如果要启动的Activity已经存在,无论位于哪个应用程序或者哪个栈中,系统都会把该Activity所在的任务栈转到前台,使该Activity显示出来。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值