activity

news/2024/10/20 17:05:48/

what
Activity 的基本概念

Activity 是 Android 应用的一个单独的屏幕,相当于一个窗口或页面。每个 Activity 通常都对应着一个用户界面(UI),并且是用户与应用程序交互的入口点。

  • Activity 的生命周期:Activity 有一套预定义的生命周期方法,用于管理它的创建、显示、暂停和销毁状态。
  • 每个应用至少有一个 Activity:通常,应用的主界面就是一个 Activity。当你打开一个应用时,系统会启动该应用的第一个 Activity。
Activity 的生命周期

理解 Activity 的生命周期 对于管理应用资源、避免内存泄漏和优化用户体验非常重要。下面是 Activity 生命周期的主要方法及其用途:

  1. onCreate():Activity 被创建时调用。你通常会在这个方法中初始化用户界面和设置一些初始数据。

  2. onStart():Activity 即将对用户可见时调用。

  3. onResume():Activity 开始与用户交互时调用,应用进入“前台”。

  4. onPause():Activity 即将离开前台(例如,用户切换到另一个应用时)调用。你可以在这里保存数据或停止动画等。 最主要是我们要知道我们此时还是能在前台看见app,我们依旧可见。

  5. onStop():Activity 不再可见时调用,可能被销毁或切换到后台。

  6. onDestroy():Activity 被销毁时调用,通常是当用户关闭应用或系统资源不足时。

周期调用
java">Log.d("ActivityLifecycle", "onDestroy called");这是日志类,我们通过日志类进行调用
Activity 与任务栈

每个 Activity 都存在于一个任务栈(Task Stack)中。当你启动一个新的 Activity 时,它会被压入栈顶,用户按下返回键时,Activity 会从栈中移除,返回到上一个 Activity。这个机制确保了应用的页面导航顺序。

UI 与 Activity 的绑定

通常,Activity 会关联一个 XML 布局文件,这个文件定义了 Activity 的用户界面。通过 setContentView() 方法,你可以将布局文件绑定到 Activity:

java">@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 设置 Activity 的布局setContentView(R.layout.activity_main);
}

在布局文件中,你定义了按钮、文本框等 UI 元素。通过 findViewById(),你可以在 Activity 中访问并操作这些元素:

java">Button myButton = findViewById(R.id.my_button);
myButton.setOnClickListener(new View.OnClickListener

http://www.ppmy.cn/news/1540573.html

相关文章

Redis学习笔记:跳跃表

概述 跳跃表(skiplist)是一种有序数据结构。相比于普通的链表访问元素需要一步一步的向后查找,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。跳跃表支持平均O(logN)、最坏O(N)复杂度的节点查找。R…

OpenCV高级图形用户界面(15)注册一个回调函数来处理鼠标事件的函数setMouseCallback()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 为指定的窗口设置鼠标处理器。 setMouseCallback 是 OpenCV 中的一个功能,允许开发者注册一个回调函数来处理鼠标事件。当用户在窗口…

【论文解读系列】EdgeNAT: 高效边缘检测的 Transformer

代码: https://github.com/jhjie/edgenat 论文: https://arxiv.org/abs/2408.10527v1 论文 EdgeNAT: Transformer for Efficient Edge Detection 介绍了一种名为EdgeNAT的基于Transformer的边缘检测方法。 1. 背景与动机 EdgeNAT预测结果示例。(a, b)…

2.Node.js 缓冲器(Buffer)

二、常用模块 2.1Buffer(缓冲器) 2.1.1概念 Buffer是一个类似于数组的对象,用于表示固定长度的字节序列 Buffer本质是一段内存空间,专门用来处理二进制数据 2.2.2特点 Buffer大小固定无法调整; Buffer性能较好,可以直接操…

公共字段自动填充-MyBatis-Plus

由于使用了MyBatis-Plus提供的方法操作数据库,所有无法直接使用AOP技术来在mapper方法执行前对公共字段赋值。 在 MyBatis-Plus 中,可以通过实现 MyBatis-Plus 提供的 MetaObjectHandler 接口来实现公共字段的自动填充,比如在插入或更新数据…

2024年【汽车驾驶员(技师)】考试题库及汽车驾驶员(技师)试题及解析

随着汽车行业的快速发展,对汽车驾驶员的专业技能要求也越来越高。为了确保每一位驾驶员都能具备扎实的专业技能和安全生产知识,2024年的汽车驾驶员(技师)考试题库进行了全面更新。安全生产模拟考试一点通作为专业的考试辅导平台&a…

②PROFINET转ModbusTCP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关

EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关https://item.taobao.com/item.htm?ftt&id822721028899 协议转换通信网关 PROFINET 转 Modbus TCP (接上一章) 配置使用 与 PROFINET 主站进行组态说明 这里介绍与西门子 PLC 的…

docker 基础镜像里 scratch 和alpine,ubuntu centos详细对比(镜像优化)

1. scratch 特点 极简:scratch 是一个空的镜像,没有任何操作系统或文件系统。 体积:scratch 镜像的大小几乎为零,是最小的镜像。 灵活性:完全由用户自定义,没有任何预装的工具或库。 依赖管理&#xff1…