开发艺术探索——生命周期和启动模式

本文详细解析了Android中Activity的生命周期,包括各个阶段的回调方法及其应用场景。例如onCreate用于初始化,onResume与onPause用于处理前台状态的变化等。此外还探讨了一些特殊情况下的生命周期变化。

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

一、Android的生命周期

1、生命周期图


2、各个生命周期何时被回调

onCreate():创建Activity的时候,被回调。

onStart():Activity已经被创建了,但是不可见。

onResume():Activity已经被创建,并显示在前台而且可见时、

onPause():当Activity未显示在前台的时候调用。

onStop():Activity未显示在前台,并且完全不可见的时候。

onDestroy():Activity准备被销毁的时候。

3、每个生命周期可以处理的事件

onCreate:初始化View,并处理逻辑和业务相关的代码

onStart()与onStop():
onStop():销毁一些占用内存的View或者组件,比如说:停止连接数据库啦,停止当前页面的网络。
onStart():当然就是当恢复的时候开启onStop()停止的东西了。

onResume()与onPause():可以想象成onStart()与onStop()的前期工作。
onPause():做一些保存数据、停止动画等工作。
onResume():开启onPause停止的东西。

这两组的区别其实不大,大致的区别在于onStop()处理稍微耗时的回收工作,onPause()处理轻量级的回收工作。

onDestory():内存回收,防止内存泄漏。

4、生命周期交互的问题
①、onPause()与onStop()之间的区别。
onPause():是当Activity不在前台的时候调用。
onStop():表示当Activity不在前台且不可见的时候调用。
所以两个是在不在前台和可不可见的区别。怎么理解不在前台但可见的现象。比如说Dialog这类的显示控件可能会展示在Activity之上或者一些半透明背景的View显示在Activity之上,就造成了Activity不在前台但是可见的现象。


②、onPause()->onResume()
一般不会发生。现在唯一发现会发生的情况是调用了DialogActivity会发生这种情况。

问1、根据①结合实践,证明Dialog是否会发生②的现象。

③、onStop()->onRestart()->onStart()
当Activity完全被其他Activity覆盖的时候,会被调用。

④、当一个Activity打开了另一个Activity的生命周期

所以如果在onPause()方法内做耗时的操作,就会影响第二个Activity的效果。

二、异常情况下的生命周期










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值