Activity 生命周期

本文详细解析了Android中Activity的生命周期,包括七个关键阶段:onCreate()、onStart()、onResume()、onPause()、onStop() 和 onDestroy()。每个阶段都对应着不同的应用情景和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    Activity 继承 android.content.context, 它是单独的与用户交互的界面。所以对于Activity 的生命周期应该有所了解。这样才能更加准确的把握程序中的各个控件之间的关系。今天要写一个关于录音器的小程序, 对于它周期的七个函数有些应用,所以记录一下。

   

    这张googleAPI 上的原图大家都看过,结合这个说一下

   onCreate(), Activity第一创建的时候调用,或者这个Activity被销毁之后再次启动,它通过setContentView(int id)来确定我们的UI。还可以做一些UI初始化的工作,比如我们做录音器是可以在这里面录音器初始化,并初始化一个线程。在这个步骤中activity并没有呈现在用户面前,也就是它并不在最前端。它之后是onReStart()和onStart().

    onStart () ,   这个时候activity已经呈现在用户面前。如果这不是activity第一次启动,而是已经stop过了。那么会先调用onReStart()然后在调用这个函数。如果程序中应用到广播,可以在这里注册广播。它之后是onResume().

    onResume() ,到这一步activity就可以与用户交互了。这个时候activity已经到了栈的最前端,用户可以操作界面上的widget。所以当一个activity打开时它会一直执行以上顺序到这里为止 。之后是onPause().在这里可以让初始化的线程开始run,做它应该做的操作。

    onPause(), 当activity不是最上层时但是这个activity并没有完全看不到,调用此函数,比如在这个activity的情况下弹出一个Dialog,这个Dialog并没有完全覆盖activity。此时调用这个函数。这时候可以让线程暂停运行。到这虽然还能看到activity,但是这个activity已经是可以被杀死的了。如果系统内存不够需要释放内存时,它是有可能被杀死的它之后是onstop().

    onStop() 当用户完全看不到activity时,调用此函数,比如直接按HOME键。这个时候如果有需要保存的数据,在这里就可以保存了,以便重启这个activity时拿到相应的数据,注册的广播也可以在这里取消,此时activity虽然停止但是并没有被杀死,它仍然在activity栈里面,如果在被杀死之前用户重新回到了这个activity,这个时候会调用onReStart()->onStart()->onResume(). 但是如果一直不再回来,有可能被清除,这个时候就要调用onDestroy().

    onDestroy(),这是activity被撤销前能调用的最后一个函数了。 在这里释放一些资源。

    所以我们可以总结出,一个activity的生存周期是onCreate() -> onDestroy(), 但是可视周期是onStart() -> onStop(), 而在最前端的周期是onResume() -> onPause(). 而从onPause() -> onDestroy() 这个activity是可能被注销的。

    这就是一个一个小菜鸟所理解的activity的前世今生。如果有不正确之处请大家指出。谢谢。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值