Android第三课-----Activity

本文详细介绍了Android中的Activity概念,包括如何创建、注册及销毁Activity,重点解析了Activity的生命周期及其四个主要方法:onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()。此外,还探讨了四种启动模式:standard, singleTop, singleTask, singleInstance,以及它们在应用中的不同作用。通过对Activity生命周期的理解和启动模式的选择,开发者能更好地管理应用的用户交互和资源利用。

一、Activity概念

Activity是一种可以包含用户界面的组件,主要用于和用户进行交互。

一个应用程序中可以包含零个或多个Activity,但不包含任何Activity的应用程序很少见,谁也不想让自己的应用永远无法被用户看到吧?


二、Activity基本用法

2-1、创建Activity

右键app–>New–>Activity–>Empty Activity:
在这里插入图片描述
在这里插入图片描述

  • Activity Name:Activity名称;
  • Generate a Layout File:勾选上表示自动为此Activity创建一个对应的布局文件;
  • Layout Name:Activity对应的布局文件名称
  • Launcher Activity:勾选上表示会自动将此Activity设置为当前项目的主Activity;

在这里插入图片描述


2-2、Activity的onCreate()方法

在安卓开发中,项目中的任何Activity都应该重写onCreate()方法,,而目前FirstActivity中已经重写了这个方法,这是Android Studio自动帮我们完成的,代码如下所示:
在这里插入图片描述


2-3、创建和加载布局

创建布局
Android程序的设计讲究逻辑和视图分离,最好每一个Activity都能对应一个布局;

右键app/res/layout–>New–>Layout Resource File
在这里插入图片描述
加载布局
在Activity的onCreate()方法中添加如下代码就可以给该Activity加载一个布局:

setContentView(R.layout.activity_my)

在这里插入图片描述


2-4、Activity注册

所有的Activity都要在AndroidManifest.xml中进行注册才能生效。

Activity的注册声明要放在<application>标签内,并通过<activity>标签来对Activity进行注册。

在这里插入图片描述

2-5、销毁Activity

通常情况下只要按一下手机的Back键就可以销毁当前的Activity了;

不过,如果你不想通过按键的方式,而是希望在程序中通过代码来销毁Activity,当然也可以。

Activity类提供了一个finish()方法,只需要调用一下这个方法就可以销毁当前的Activity了。

button1.setOnClickListener {
    finish()
}

三、运行程序

启动安卓虚拟设备:点击工具栏的Device Manager:
在这里插入图片描述
点击Create device:
在这里插入图片描述
点击三角形,启动设备:
在这里插入图片描述
在这里插入图片描述

运行程序
在这里插入图片描述
在这里插入图片描述
当然也可以真机调试,用USB线将手机连接到电脑,电脑需要安装ADB驱动才行,然后再运行时选择真机设备即可;

或者将APK发送到手机,安装一下也行:
在这里插入图片描述
在这里插入图片描述
点击右侧底部弹出的提示框中的locate,即可弹出存放APK的文件夹;


四、Activity的生命周期

返回栈:Android是使用任务(task)来管理Activity的,一个任务就是一组存放在栈里的Activity的集合,这个栈也被称作返回栈(back stack)

栈是一种后进先出的数据结构,在默认情况下,每当我们启动了一个新的Activity,它就会在【返回栈】中入栈,并处于栈顶的位置。而每当我们按下Back键或调用finish()方法去销毁一个Activity时,处于栈顶的Activity就会出栈,前一个入栈的Activity就会重新处于栈顶的位置。

系统总是会显示处于栈顶的Activity给用户。

生命周期

  • onCreate():这个方法在Activity第一次被创建的时候调用;
  • onStart():这个方法在Activity由不可见变为可见的时候调用;
  • onResume():这个方法在Activity准备好喝用户进行交互的时候调用;
  • onPause():这个方法在系统准备去启动或者恢复另一个Activity的时候调用;
  • onStop():这个方法在Activity完全不可见的时候调用;
  • onDestroy():这个方法在Activity被销毁之前调用;
  • onRestart():这个方法在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实例的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贝勒里恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值