安卓基础之《(4)—Activity组件》

==========启停活动页面==========

一、Activity的启动和结束

1、从当前页面跳到新页面,跳转代码

java 复制代码
startActivity(new Intent(源页面.this, 目标页面.this));

从A跳到B,A就是源页面,B是目标页面

2、从当前页面回到上一个页面,相当于关闭当前页面,返回代码

java 复制代码
finish(); // 结束当前的活动页面

3、注意A、B页面都要在清单文件中注册

二、Activity的生命周期

1、生命周期

2、什么是生命周期

定义:一个事物由生到死,状态转换的过程

有来就会有去,痛苦来了会走,生气来了也会走

3、生命周期,activity的启动到结束,中间有很多可执行的操作

4、生命周期方法说明

(1)onCreate:创建活动。把页面布局加载进内存(所以经常用findViewById),进入了初始状态

(2)onStart:开始活动。把活动页面显示在屏幕上,进入了就绪状态

(3)onResume:恢复活动。活动页面进入活跃状态,能够与用户正常交互,例如允许响应用户的点击动作、允许用户输入文字等等(在这里开启动画)

(4)onPause:暂停活动。页面进入暂停状态,无法与用户正常交互

(5)onStop:停止活动。页面将不在屏幕上显示

(6)onDestroy:销毁活动。回收活动占用的系统资源,把页面从内存中清除

(7)onRestart:重启活动。重新加载内存中的页面数据

(8)onNewIntent:重用已有的活动实例

5、onNewIntent说明

如果一个Activity已经启动过,并且存在当前应用的Activity任务栈中,启动模式为singleTask、singleInstance或singleTop(此时已在任务栈顶端),那么在此启动或回到这个Activity的时候,不会创建新的实例,也就是不会执行onCreate方法,而是执行onNewIntent方法

三、各状态之间的切换过程

1、打开新页面的方法调用顺序为

onCreate --> onStart --> onResume

2、关闭旧页面的方法调用顺序为

onPause --> onStop --> onDestory

3、日志

复制代码
打开页面
2025-12-12 16:21:52.912 11916-11916 sam                     com.example.chapter04                D  ActStartActivity onCreate
2025-12-12 16:21:53.192 11916-11916 sam                     com.example.chapter04                D  ActStartActivity onStart
2025-12-12 16:21:53.215 11916-11916 sam                     com.example.chapter04                D  ActStartActivity onResume
跳转
2025-12-12 16:22:17.936 11916-11916 sam                     com.example.chapter04                D  ActStartActivity onPause
2025-12-12 16:22:18.853 11916-11916 sam                     com.example.chapter04                D  ActStartActivity onStop
返回页面
2025-12-12 16:22:22.030 11916-11916 sam                     com.example.chapter04                D  ActStartActivity onRestart
2025-12-12 16:22:22.030 11916-11916 sam                     com.example.chapter04                D  ActStartActivity onStart
2025-12-12 16:22:22.032 11916-11916 sam                     com.example.chapter04                D  ActStartActivity onResume
关闭页面
2025-12-12 16:22:25.081 11916-11916 sam                     com.example.chapter04                D  ActStartActivity onPause
2025-12-12 16:22:26.329 11916-11916 sam                     com.example.chapter04                D  ActStartActivity onStop
2025-12-12 16:22:26.330 11916-11916 sam                     com.example.chapter04                D  ActStartActivity onDestroy

四、Activity的启动模式

1、Activity启动后是放入任务栈(task stack)里头的

2、某App先后打开两个活动,此时活动栈的变动情况如下

3、依次结束已打开的两个活动,此时活动栈的变动情况如下

相关推荐
HLC++6 小时前
Linux的进程间通信
android·linux·服务器
爱笑鱼9 小时前
Binder(二):AIDL 生成的 Proxy、Stub 和 Parcel 到底在做什么?
android
爱笑鱼10 小时前
Binder(一):一次方法调用,究竟怎样跨进程执行?
android
壮哥_icon11 小时前
【Android 系统开发】使用 BAT 脚本高效自动化管理 /system/priv-app/ 系统应用(安装与卸载)
android·运维·自动化
用户693717500138412 小时前
Claude Code终端日志Token占用实测:一个过滤器砍掉60%-90%
android·前端·后端
蝉蜕日记12 小时前
AccumuPDF高级版 v2.57 | 视图文转换PDF,合并分割压缩
android·智能手机·pdf·生活·软件需求
吐了啊取名字太难13 小时前
美颜系统AI修图本地跑并支持Mac、win、安卓、iOS不卡顿
android·人工智能·windows·数码相机·mac·ai编程
阿pin14 小时前
Android随笔-Retrofit
android·retrofit
想取一个与众不同的名字好难14 小时前
安卓自定义颜色选择器
android
我命由我1234515 小时前
Android 开发问题:java.lang.NoSuchMethodError:No virtual method readAllBytes()
android·java·java-ee·kotlin·android studio·android-studio·android runtime