赞
踩
Activity是一种可以包含用户界面的组件,主要用于和用户进行交互。
一个应用程序中可以包含零个或多个Activity,但不包含任何Activity的应用程序很少见,谁也不想让自己的应用永远无法被用户看到吧?
右键app–>New–>Activity–>Empty Activity:
在安卓开发中,项目中的任何Activity都应该重写onCreate()方法,,而目前FirstActivity中已经重写了这个方法,这是Android Studio自动帮我们完成的,代码如下所示:
创建布局
Android程序的设计讲究逻辑和视图分离,最好每一个Activity都能对应一个布局;
右键app/res/layout–>New–>Layout Resource File
加载布局
在Activity的onCreate()方法中添加如下代码就可以给该Activity加载一个布局:
setContentView(R.layout.activity_my)
所有的Activity都要在AndroidManifest.xml中进行注册才能生效。
Activity的注册声明要放在<application>
标签内,并通过<activity>
标签来对Activity进行注册。
通常情况下只要按一下手机的Back键就可以销毁当前的Activity了;
不过,如果你不想通过按键的方式,而是希望在程序中通过代码来销毁Activity,当然也可以。
Activity类提供了一个finish()方法,只需要调用一下这个方法就可以销毁当前的Activity了。
button1.setOnClickListener {
finish()
}
启动安卓虚拟设备:点击工具栏的Device Manager:
点击Create device:
点击三角形,启动设备:
运行程序
当然也可以真机调试,用USB线将手机连接到电脑,电脑需要安装ADB驱动才行,然后再运行时选择真机设备即可;
或者将APK发送到手机,安装一下也行:
点击右侧底部弹出的提示框中的locate,即可弹出存放APK的文件夹;
返回栈:Android是使用任务(task)来管理Activity的,一个任务就是一组存放在栈里的Activity的集合,这个栈也被称作返回栈(back stack)
栈是一种后进先出的数据结构,在默认情况下,每当我们启动了一个新的Activity,它就会在【返回栈】中入栈,并处于栈顶的位置。而每当我们按下Back键或调用finish()方法去销毁一个Activity时,处于栈顶的Activity就会出栈,前一个入栈的Activity就会重新处于栈顶的位置。
系统总是会显示处于栈顶的Activity给用户。
生命周期
standard模式
standard是Activity默认的启动模式,在不进行显式指定的情况下,所有Activity都会自动使用这种启动模式;
在standard模式下,每当启动一个新的Activity,它就会在返回栈中入栈,并处于栈顶的位置;
对于使用standard模式的Activity,系统不会在乎这个Activity是否已经在返回栈中存在,每次启动都会创建一个该Activity的新实例;
singleTop模式
当Activity的启动模式指定为singleTop,在启动Activity时如果发现返回栈的栈顶已经是该Activity,则认为可以直接使用它,不会再创建新的Activity实例。
singleTask模式
Activity的启动模式指定为singleTask,每次启动该Activity时,系统首先会在返回栈中检查是否存在该Activity的实例,如果发现已经存在则直接使用该实例,并把在这个Activity之上的所有其他Activity统统出栈,如果没有发现就会创建一个新的Activity实例。
singleInstance模式
当Activity的启动模式指定为singleInstance,会启用一个新的返回栈来管理这个Activity。
假设我们的程序中有一个Activity是允许其他程序调用的,如果想实现其他程序和我们的程序可以共享这个Activity的实例,就可以使用singleInstance模式。
在这种模式下,会有一个单独的返回栈来管理这个Activity,不管是哪个应用程序来访问这个Activity,都共用的同一个返回栈,也就解决了共享Activity实例的问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。