一、活动的生命周期
1、活动状态
-
运行状态
当一个活动位于栈顶的时候,该活动就处于运行状态。(Android是使用任务栈来管理活动的,也称返回栈(Back Stack)。在默认情况下,每当我们启动一个新的活动,它会在返回栈中入栈,并处于栈顶位置。每当我们按下Back键或调用finish()方法去销毁一个活动时,处于栈顶的活动会出栈,这时前一个入栈的活动会位于栈顶。系统总是会显示处于栈顶的活动给用户。) -
暂停状态
当一个活动不再处于栈顶的位置,但仍然可见时,这时活动就进入了暂停状态。处于暂停状态的活动是完全存活的。 -
停止状态
当一个活动不再处于栈顶位置,并且完全不可见的时候,就进入了停止状态。 -
销毁状态
当一个活动从返回栈中移除后就变成了销毁状态。
2、活动的回调方法
- onCreate()
①Activity开始创建时
②程序在暂停、停止状态下被杀死后重新打开时 - onStart()
①onCreate()方法之后,即Activity正在被启动时(此时,Activity还不可见(在后台),还无法与用户交互)
②Activity从停止状态恢复时调用 - onResume()
①Activity第一次启动完毕(onStart()方法之后调用)
②当前Activity被挡住一部分后,重新回到当前Activity时(从暂停状态恢复时调用)
③界面获得焦点 - onPause()
①Activity停止时,仍可见时
②界面失去焦点 - onStop()
Activity不在UI最顶层,完全被挡住不可见时 - onDestroy()
Activity即将被销毁时 - onRestart()
Activity处于onStop()状态时(不可见时)重新回到UI最顶层
3、活动的生命周期

(1)Activity启动:onCreate()→onStart()→onResume()
(2)点击Home键回到主界面/打开新的Activity:onPause()→onStop()
注:有一种特殊情况,如果新Activity采用了透明主题,那么当前Activity不会回调onStop()
(3)再次回到原Activity时:onRestart()→onStart()→onResume()
(4)退出当前Activity时:onPause()→onStop()→onDestroy()
(5)当执行到onPause()方法Activity失去焦点时,重新回到前台会执行onResume()方法,如果此时进程被销毁Activity重新执行时会先执行onCreate()方法。
(6)当执行到onStop()方法Activity不可见时,再次回到前台会执行onRestart()方法,如果此时进程被销毁Activity会重新执行onCreate()方法。
(7)两个Activity(A、B)切换(B是正常的Activity)的生命周期:onPause(A)->onCreate(B)->onStart(B)->onResume(B)->oStop(A)。这时如果按回退键回退到A,生命周期为:onPause(B)->onRestart(A)->onStart(A)->onResume(A)->oStop(B)。如果在切换到B后调用了A.finish(),

本文详细探讨了Android活动(Activity)的生命周期,包括运行、暂停、停止和销毁状态及其回调方法,如onCreate(), onStart(), onResume(), onPause(), onStop()和onDestroy()。此外,还讲解了Activity的启动方式,如显式和隐式启动,以及启动模式(standard, singleTop, singleTask, singleInstance)。文章进一步讨论了Activity之间的数据回传、传递数据的类型,以及如何应对Activity被系统回收时的数据保存与恢复。最后,提到了安全退出多Activity应用程序的策略以及Activity通信的注意事项。"
108129722,9927088,Blender游戏建模初学者指南:界面操作详解,"['游戏开发', '3D建模', 'Blender软件', '建模教程', '界面定制']
最低0.47元/天 解锁文章
3014

被折叠的 条评论
为什么被折叠?



