activity生命周期

activity的生命周期

  1. onCreate():
    活动第一次创建的时候被调用,常做初始化的操作,比加载布局(setContentView),绑定事件(findViewById)。表示Activity正在创建。
  2. onStart():
    活动由不可见到可见的时候被调用,表示Activity正在启动,此时Activity可见但不在前台。
  3. onResume():
    活动准备好和用户进行交互时调用。表示Acitivity获得焦点,此时Activity可见且在前台。
  4. onPause():
    系统准备去启动或恢复另一个活动时调用。表示Activity正在停止,此时可做存储数据,停止动画等操作。
  5. onStop():
    在活动完全不可见的时候调用。表示Activity即将停止。
  6. onDestory():
    在活动被销毁之前调用,表示Activity即将销毁,常做回收工作、资源释放。
  7. onRestart():
    在活动由停止状态变为运行状态之前调用。表示Activity即将重启。

生命周期的切换过程

  1. 启动Activity: Starting ——–>Running
  • 所执行的生命周期顺序 onCreate()->onStart()->onResume()

系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。当前称为活动状态(Running),此Activity所处于任务栈的top中,可以与用户进行交互。

  1. 当前Activity被其他Activity覆盖其上(部分可见)或被锁屏: Running ——>Paused
  • 所执行Activity生命周期中的onPause()

系统会调用onPause方法,暂停当前Activity的执行。该Activity已失去了焦点但仍然是可见的状态(包括部分可见)。

  1. 当前Activity由被覆盖状态回到前台或解锁屏: Paused ——>Running
  • 所执行的生命周期为:OnResume()

系统会调用onResume方法,再次进入运行状态。

  1. 当前Activity被新的Activity界面完全覆盖或按Home键回到主屏,自身退居后台: Running——>Paused ——>Stoped
  • 所执行的生命周期为: onPause()->onStop()

系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。(该Activity被另一个Activity完全覆盖的状态,该Activity变得不可见,所以系统经常会由于内存不足而将该Activity强行结束。)

  1. 从后台回到前台退回到此Activity: Stoped——>Running
  • 所执行的生命周期为: onRestart()->onStart()->onResume()

系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。

  1. 用户退出当前Activity: Stoped——>killed
  • 所执行的生命周期为:onDestroy()

系统先调用onPause方法,然后调用onStop方法,最后调用onDestory方法,结束当前Activity。

  • 当一个Activity打开另一个Activity都会回调哪些方法,如果ActivityB是完全透明的呢,如果启动的是一个对话框Activity呢?

A:onPause->B:onCreate->B:onStart->B:onResume->A:onStop

如果ActivityB是完全透明的或对话框Activity则不会调用onStop。

  • 启动新Activity后,又返回到旧的Activity

B:onPause->A:onRestart->A:onStart->A:onResume->B:onStop->B:onDestory

activity的生存期

活动的生存期分为三个:
1.完整生存期
2.可见生存期
3.前台生存期

  • 完整生存期:
    onCreate()方法与onDestory()都处于完整生存期,一般情况下,Activity会在onCreate()方法中完成各种初始化操作,而在onDestory()方法中完成释放内存的操作。
  • 可见生存期:
    onStart()方法与onStop()方法就是可见生存期,Activity对于用户是可见的,但无法与用户交互。onStart()方法中对资源进行加载,onStop()方法中对资源进行释放。
  • 前台生存期:
    onResume方法与onPause方法就是前台生存期,在前台生存期内,活动处于运行状态,此时可以与用户交互。

在这里插入图片描述
在这里插入图片描述

https://blog.csdn.net/encounterto/article/details/82144305
https://blog.csdn.net/xiajun2356033/article/details/78741121
https://blog.csdn.net/weixin_41796401/article/details/102860545

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值