Activity生命周期

 Android activity的生命周期

activity类处于android.app包中,继承体系如下:

1.java.lang.Object

2.android.content.Context

3.android.app.ApplicationContext

4.android.app.Activity


 

(1)onCreate:表示Activity正在被创建,适合做一些初始化工作。实际应用中一般会初始化成员变量和加载布局资源。
(2)onRestrat:表示Activity正在被重新启动。一般是从不可见重新变为可见状态是调用。
(3)onStart:表示Activity正在被启动,即将开始,此时已经可见,但仍旧在后台,无法与用户交互,虽可见,但是我们还看不到。
(4)onResume:表示Activity已经可见了。此时Activity显示到前台。
(5)onPause:表示Activity正在停止,此时可以做一些存储数据、停止动画等操作,但不宜太耗时。因为此方法执行完,新的Activity的onResume才会执行。
(6)onStop:表示Activity即将停止,此时可以做一些回收工作,同样不能太耗时。
(7)onDestroy:表示Activity即将被销毁,此时可以做一些资源释放。

MainActivity的启动,退出

// MainActivity的启动
2022-04-20 16:46:50.493 11861-11861/com.hnucm.myapplication I/MainActivityLog: onCreate: 
2022-04-20 16:46:50.497 11861-11861/com.hnucm.myapplication I/MainActivityLog: onStart: 
2022-04-20 16:46:50.498 11861-11861/com.hnucm.myapplication I/MainActivityLog: onResume: 
// MainActivity的退出
2022-04-20 16:46:57.099 11861-11861/com.hnucm.myapplication I/MainActivityLog: onPause: 
2022-04-20 16:46:57.700 11861-11861/com.hnucm.myapplication I/MainActivityLog: onStop: 
2022-04-20 16:46:57.701 11861-11861/com.hnucm.myapplication I/MainActivityLog: onDestroy: 

正常情况下,Activity的生命周期为onCreate() -> onStart() -> onResume() -> onPause() ->onStop() -> onDestroy()

启动后转动屏幕

// MainActivity的启动
2022-04-20 16:46:50.493 11861-11861/com.hnucm.myapplication I/MainActivityLog: onCreate: 
2022-04-20 16:46:50.497 11861-11861/com.hnucm.myapplication I/MainActivityLog: onStart: 
2022-04-20 16:46:50.498 11861-11861/com.hnucm.myapplication I/MainActivityLog: onResume: 
// 默认情况旋转屏幕
2022-04-20 16:52:35.645 12203-12203/com.hnucm.myapplication I/MainActivityLog: onPause: 
2022-04-20 16:52:35.649 12203-12203/com.hnucm.myapplication I/MainActivityLog: onStop: 
2022-04-20 16:52:35.649 12203-12203/com.hnucm.myapplication I/MainActivityLog: onSaveInstanceState: 
2022-04-20 16:52:35.650 12203-12203/com.hnucm.myapplication I/MainActivityLog: onDestroy: 
2022-04-20 16:52:35.695 12203-12203/com.hnucm.myapplication I/MainActivityLog: onCreate: 
2022-04-20 16:52:35.700 12203-12203/com.hnucm.myapplication I/MainActivityLog: onStart: 
2022-04-20 16:52:35.701 12203-12203/com.hnucm.myapplication I/MainActivityLog: onRestoreInstanceState: 
2022-04-20 16:52:35.701 12203-12203/com.hnucm.myapplication I/MainActivityLog: onResume: 

默认情况下旋转屏幕会触发重新绘图,所以APP会销毁这个Activity,并根据屏幕重新绘制Activity。
Android为我们提供了onSaveInstanceState()onRestoreInstanceState()这两个方法,可以保证Activity在意外销毁时存储数据和恢复数据。旋转屏幕导致的Activity销毁属于意外销毁。
根据多次测试得出onSaveInstanceState()运行在onStop()之后,onRestoreInstanceState()运行在onStart()之后。

在点击按钮后跳转自己,启动模式singleTop

// MainActivity的启动
2022-04-20 16:46:50.493 11861-11861/com.hnucm.myapplication I/MainActivityLog: onCreate: 
2022-04-20 16:46:50.497 11861-11861/com.hnucm.myapplication I/MainActivityLog: onStart: 
2022-04-20 16:46:50.498 11861-11861/com.hnucm.myapplication I/MainActivityLog: onResume: 
// 点击按钮跳转
2022-04-20 17:02:49.520 12832-12832/com.hnucm.myapplication I/MainActivityLog: onPause: 
2022-04-20 17:02:49.520 12832-12832/com.hnucm.myapplication I/MainActivityLog: onNewIntent: 
2022-04-20 17:02:49.520 12832-12832/com.hnucm.myapplication I/MainActivityLog: onResume: 

MainActivity的启动模式为SingleTop时,通过MainActivity布局内的按钮跳转到MainActivity时,不会创建一个新的MainActivity,而是在执行onPause()后通过onNewIntent()重新执行onResume()
有关启动模式的介绍,点击此处

点击HOME键,返回到桌面,再点击回到应用

// MainActivity的启动
2022-04-20 16:46:50.493 11861-11861/com.hnucm.myapplication I/MainActivityLog: onCreate: 
2022-04-20 16:46:50.497 11861-11861/com.hnucm.myapplication I/MainActivityLog: onStart: 
2022-04-20 16:46:50.498 11861-11861/com.hnucm.myapplication I/MainActivityLog: onResume: 
// 应用退到后台
2022-04-20 17:06:37.296 12832-12832/com.hnucm.myapplication I/MainActivityLog: onPause: 
2022-04-20 17:06:38.102 12832-12832/com.hnucm.myapplication I/MainActivityLog: onStop: 
2022-04-20 17:06:38.103 12832-12832/com.hnucm.myapplication I/MainActivityLog: onSaveInstanceState: 
// 回到应用
2022-04-20 17:07:24.601 12832-12832/com.hnucm.myapplication I/MainActivityLog: onRestart: 
2022-04-20 17:07:24.602 12832-12832/com.hnucm.myapplication I/MainActivityLog: onStart: 
2022-04-20 17:07:24.602 12832-12832/com.hnucm.myapplication I/MainActivityLog: onResume: 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值