android Activity生命周期

android 中一个 activity 在其生命周期中会经历多种状态。 您可以使用一系列回调来处理状态之间的转换。下面我们来介绍这些回调。

onCreate(创建阶段)

初始化组件:在这个阶段,Activity的主要工作是进行初始化操作。这包括为Activity设置布局内容,通过调用setContentView()方法加载布局文件。

绑定事件:初始化各种控件,并为其设置监听器。例如,通过findViewById()获取按钮控件,并设置OnClickListener监听用户的点击事件。

配置参数:读取Intent传递过来的数据,并根据需要对Activity进行配置。

加载资源:完成一些资源密集型的操作,如读取文件、数据库查询等,以确保UI显示前一切准备就绪。

onStart(开始阶段)

进入就绪状态:此阶段表明Activity正在被启动,但此时还不在前台。用户仍然看不到Activity。

恢复数据:在onStart阶段,可以重新关联到之前保存的数据,确保Activity能够恢复到之前的状态。

分配资源:为即将展现给用户的Activity准备必须的资源,如网络连接、传感器等。

设置状态:更新Activity的内部状态,以反映它正在运行但尚未出现在前台。

onResume(恢复阶段)

用户交互:在此阶段,Activity进入前台并开始与用户交互。此时Activity处于就绪状态,用户可以看到并操作这个界面。

恢复焦点:Activity会获得系统输入的焦点,用户可以通过键盘、触摸等进行操作。

动画处理:如果有动画需要展示,可以在onResume阶段开始执行。

最后调整:进行最后的UI调整,确保用户体验流畅。

onPause(暂停阶段)

节省资源:当系统认为需要回收内存时,可能会调用此方法。在onPause阶段,Activity即将停止所有CPU使用,但依然可见。

保存数据:在暂停前,应该将当前数据和状态保存下来,防止数据丢失。

中止动画:如果有动画正在运行,应在此时停止,以避免消耗过多资源。

异步处理:如果有一些高优先级的任务还未完成,可在此阶段迅速完成或将其交给其他线程处理。

onStop(停止阶段)

完全不可见:Activity即将完全从用户视线中消失,此时不可见且不再能与用户交互。

释放资源:释放掉不必要的资源,如动态创建的视图、Bitmap等,以节省内存。

保存应用状态:保存必要的应用状态,以便重新回到此Activity时能够恢复。

避免泄露:确保所有的资源都已经正确释放,避免内存泄漏问题。

onRestart(重启阶段)

重新启动:当Activity从停止状态进入重新启动状态时,会调用此方法。此时Activity正准备再次可见。

重置数据:重新初始化数据结构,准备好再次显示UI。

重新绑定:重新绑定到数据源或其他必要服务。

恢复配置:根据保存的状态重新配置Activity,确保一致性。

onDestroy(销毁阶段)

清理资源:这是Activity生命周期的最后一个阶段,即将被销毁。此时应释放所有资源,确保没有任何内存泄漏。

注销监听:取消注册的所有监听器,包括广播接收者和任何回调。

持久化数据:将需要持久化的数据保存到存储设备上。

结束任务:终止所有后台任务,如线程、计时器等。

总结

Activity生命周期涵盖了从创建到销毁的全过程,每个阶段都有其特定的任务和职责,确保应用在不同状态下都能表现出色。必须理解并合理利用这些生命周期方法。

相关推荐
mmsx17 分钟前
android 登录界面编写
android·登录界面
姜毛毛-JYM17 分钟前
【JetPack】Navigation知识点总结
android
花生糖@1 小时前
Android XR 应用程序开发 | 从 Unity 6 开发准备到应用程序构建的步骤
android·unity·xr·android xr
是程序喵呀1 小时前
MySQL备份
android·mysql·adb
casual_clover1 小时前
Android 之 List 简述
android·list
锋风Fengfeng3 小时前
安卓15预置第三方apk时签名报错问题解决
android
User_undefined3 小时前
uniapp Native.js原生arr插件服务发送广播到uniapp页面中
android·javascript·uni-app
程序员厉飞雨4 小时前
Android R8 耗时优化
android·java·前端
丘狸尾6 小时前
[cisco 模拟器] ftp服务器配置
android·运维·服务器
van叶~8 小时前
探索未来编程:仓颉语言的优雅设计与无限可能
android·java·数据库·仓颉