Android开发之Activity生命周期介绍

14人浏览 / 0人评论 / 添加收藏

生命周期就是一个对象从创建到销毁的过程,每个对象都有自己的生命周期。Activity生命周期分为三种状态。运行状态,停止状态,暂停状态。

一.运行状态 当activity在最前端时,它是可见的,有焦点的,可以用来处理用户的常见的操作。如:点击,双击,长按事件等。系统最不愿回收的就是出于此种状态的活动,这会带来非常差的用户体验。
二.暂停状态 activity依然可见,但它不再拥有焦点,即用户对它的操作没有实际意义。
三.停止状态 activity完全不可见,但仍然保留着当前状态和成员信息。如果当系统内存不足,其他地方需要内存时,它会被系统回收。

完整的生命周期方法
 

onCreate()

Activity 首次创建时调用
必须实现的方法,用于初始化基本组件
应该在此处调用 setContentView() 设置布局
接收 savedInstanceState 参数(可能为 null)
 

onStart()

Activity 变为可见状态时调用
此时 Activity 还未出现在前台,不能与用户交互
适合初始化需要在 Activity 可见时运行的组件
 

onResume()

Activity 进入前台并可与用户交互时调用
在此方法中恢复动画、摄像头等独占资源
应用的核心功能通常在此状态下运行
 

onPause()

当 Activity 开始失去焦点时调用
另一个 Activity 即将进入前台(如对话框或新 Activity)
应该在此保存持久性数据,停止动画等消耗资源操作
注意:不能执行耗时操作,否则会影响新 Activity 的显示
 

onStop()

Activity 完全不可见时调用
新 Activity 已完全覆盖当前 Activity
释放不需要在 Activity 不可见时使用的资源
 

onDestroy()

Activity 被销毁前调用
可能是用户主动关闭或系统为回收内存
清理所有资源,避免内存泄漏
 

onRestart()

Activity 从停止状态重新启动时调用
在 onStop() 后且 Activity 再次显示前调用

 

常见场景的生命周期变化
 

正常启动和退出

onCreate() → onStart() → onResume()
onPause() → onStop() → onDestroy()
 

按下Home键

onPause() → onStop()
 

从后台返回

onRestart() → onStart() → onResume()
 

屏幕旋转

onPause() → onSaveInstanceState() → onStop() → onDestroy()
onCreate() → onStart() → onRestoreInstanceState() → onResume()
 

 

全部评论