Activity以及Activity的四种启动模式

来源:互联网 发布:java图书管理系统代码 编辑:程序博客网 时间:2024/05/21 17:14

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显示出来。


2 0
原创粉丝点击