android activity onstart直接到onstop,Android Activity细化出onCreate、onStart、onResume、onPause、onStop、onDesd...

本文探讨了Android Activity为何要细化为多个生命周期方法,如onCreate、onStart、onResume、onPause、onStop。通过分析Activity间切换的日志,解释了为何在从AActivity切换到BActivity时,会先调用AActivity的onPause(),接着是BActivity的初始化流程,最后调用AActivity的onStop()。这与资源管理、用户体验和系统响应速度有关。

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

最近在研究Activity的启动流程,老罗的blog在看,也找了其它资料学习,也跟过Android4.3的源码,

在跟代码的过程中,突然想到下面的这个问题:

Android

Activity为什么要细化出onCreate、onStart、onResume、onPause、onStop、onDesdroy这么多方法让应用去重载?

网上太多根据Android开发规范翻译转载的内容,都不是我想要的答案,那就自己分析下。

如下是一段典型的Activity间切换的日志,从AActivity切换到BActivity:

10-17 20:54:42.247: I/com.example.servicetest.AActivity(5817): onCreate() 1166919192 taskID=66

10-17 20:54:42.263: I/com.example.servicetest.AActivity(5817): onStart() 1166919192 taskID=66

10-17 20:54:42.263: I/com.example.servicetest.AActivity(5817): onResume() 1166919192 taskID=66

10-17 20:54:46.997: I/com.example.servicetest.AActivity(5817): onPause() 1166919192 taskID=66

10-17 20:54:47.021: I/com.example.servicetest.BActivity(5817): onCreate() 1166971824 taskID=66

10-17 20:54:47.028: I/com.example.servicetest.BActivity(5817): onStart() 1166971824 taskID=66

10-17 20:54:47.028: I/com.example.servicetest.BActivity(5817): onResume() 1166971824 taskID=66

10-17 20:54:47.099: I/com.example.servicetest.AActivity(5817): onStop() 1166919192 taskID=66

当触发从AActivity切换到BActivity时的日志如下:

10-17 20:54:46.997:

I/com.example.servicetest.AActivity(5817):

onPause() 1166919192

taskID=66

10-17 20:54:47.021: I/com.example.servicetest.BActivity(5817):

onCreate() 1166971824 taskID=66

10-17 20:54:47.028: I/com.example.servicetest.BActivity(5817):

onStart() 1166971824 taskID=66

10-17 20:54:47.028: I/com.example.servicetest.BActivity(5817):

onResume() 1166971824 taskID=66

10-17 20:54:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值