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

相关推荐
彭于晏6898 小时前
Android数据存储
android·数据库
诸神黄昏EX8 小时前
Android OTA升级
android
金色熊族8 小时前
安卓真机调试“no target device found“以及“ INSTALL_FAILED_USER_RESTRICTED“两个问题的解决办法
android
提笔忘字的帝国8 小时前
【Android】获取备案所需的公钥以及签名MD5值
android
customer088 小时前
【开源免费】基于SpringBoot+Vue.JS美容院管理系统(JAVA毕业设计)
android·java·vue.js·spring boot·spring cloud·开源
图王大胜9 小时前
Android SystemUI组件(10)禁用/重启锁屏流程分析
android·systemui·锁屏·keyguard
奋斗的小鹰10 小时前
kotlin 委托
android·开发语言·kotlin
Wency(王斯-CUEB)12 小时前
【文献阅读】政府数字治理的改善是否促进了自然资源管理?基于智慧城市试点的准自然实验
android·kotlin·智慧城市
我又来搬代码了14 小时前
【Android】【bug】ImageView设置scaleType不生效的问题
android·bug
长亭外的少年15 小时前
探索Android折叠屏设备的分屏适配
android