Android四大组件之Actiivty的生命周期

1Activity的生命周期



onCreate():只应在Activity整个生命周期创建一次,并执行一些基本的启动逻辑,例如声明用户界面,定义成员变量,配置某些UI等,在onCreate()方法中调用finish()方法销毁Activity,系统会调用onDestroy()而不会调用其他生命周期方法
onStart():可见
onResume():可见
onPause():部分可见
onStop():不可见
onDestory():
其中onCreate()  onStart()都是瞬态的,也就是说系统在调用onCreate之后会快速调用onStart()紧接着快速调用onResume();
其中onResume()  onPause()  onStop()是静态的,也就是说Activity只能在三种状态下存在很长时间
其中onDestory() 在你退出程序或者意外终止是被调用

3.暂停后onPause()继续Activity
(1)在这个阶段调用onPause()方法你应该做一些操作,例如1.停止在暂停时继续进行的操作(视频),2.保留任何应该永久保存的信息,3.释
放系统资源比如广播接收器
(2)在这个阶段调用onPause()方法你不该做一些操作,例如1.永久性的存储用户更改,2.避免执行CPU密集型操作如向数据库写入信息
(3)在onPause()方法后继续Activity系统调用onResume()方法,在这个方法里面你应该初始化在onPause()时释放的组件

4.停止后onStop()继续Activity
(1)在这个阶段调用onStop()方法你应该做一些操作,例如1.执行更大占用更多CPU的关闭操作,例如向数据库写入信息,

5.销毁后onDestroy()重新创建Activity
(1)正常销毁:用户按了返回按钮,用户调用finish()自行销毁,系统的Activity实例将自行消失
(2)异常销毁:Activity被停止或长期未使用,前台的Activity需要更多资源以至于系统需要关闭后台进程恢复内存导致Activity被销毁,这种
情况下,尽管Activity实例已不在,但系统会使用Bundle实例状态保存您的Activity布局中有关每个View对象的信息,因此要保存Acitivity
状态的其他数据您需调用onSaveInstanceState()回调方法

6.保存Activity状态和恢复Activity状态
(1)保存Activity状态:使用onSaveInstanceState()回调方法,此方法默认实现保存Activity视图层次的状态信息.当用户离开Activity并在Activity意外销毁时onSaveInstanceState()回调方法被调用,调用时机在onStop之前,和onPause没有前后之分
(2)恢复Activity状态:如果Activity先前被销毁稍后又需要重新创建相同的实例时,onRestoreInstanceState()会被调用,调用时机在onStart()之后

7.考虑下面几种情况的Activity的生命周期回调
(1)切换到其他Activity;切换到桌面时;用户在使用应用的时候接听电话;切换到另一个应用;最后有回到原来的Activity时
onPause()--onStop()--onRestart()--onStart()--onResume()
(2)切换到其他Actiivty时新的Activity为透明主题;在Activity界面弹出一主题对话框时,Activity还处于部分可见;最后又回到Activity
onPause()--onResume() onPause()不会调用onStop()因为Activity还处于可见状态;注意警告对话框不会调用onPause()方法
(3)从Activity A进入到Activity B时
onPause(A)--onCreate(B)--onStart(B)--onResume(B)--onStop(A)
(3)从Activity A进入到Activity B时最后又按返回键到Activity A时
onPause(A)--onCreate(B)--onStart(B)--onResume(B)--onStop(A)--onPause(B)--onRestart(A)--onStart(A)--onResume(A)--onStop(B)



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 四大组件分别是活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)和内容提供器(ContentProvider)。 活动(Activity)是Android应用的核心组件,它代表用户界面的一个单独屏幕。每个活动都有自己的生命周期。活动的生命周期包括以下几个方法:onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()。当活动被创建时,首先调用onCreate()方法,然后调用onStart()和onResume()方法,活动进入可见状态。当活动被其他活动覆盖或者用户按下返回键时,会调用onPause()方法,然后调用onStop()方法,活动进入不可见状态。当用户再次返回到该活动时,会调用onRestart()、onStart()和onResume()方法,恢复活动的可见状态。最后,当活动被销毁时,会调用onPause()、onStop()和onDestroy()方法。 服务(Service)是一种在后台运行的组件,它可以执行长时间运行的任务,即使用户切换到其他应用程序。服务的生命周期包括onCreate()、onStartCommand()、onBind()和onDestroy()方法。当服务被创建时,会调用onCreate()方法。然后,通过调用onStartCommand()方法来启动服务并执行后台任务。如果其他组件想要与服务进行交互,可以调用onBind()方法来绑定服务。最后,当服务不再需要时,会调用onDestroy()方法来销毁服务。 广播接收器(BroadcastReceiver)是一种响应系统广播消息的组件。它可以在应用程序之间传递消息,或者通过系统消息通知应用程序发生的事件。广播接收器的生命周期只包括onReceive()方法,当接收到广播消息时,会调用这个方法来处理接收到的消息。 内容提供器(ContentProvider)是一种管理应用程序之间共享数据的组件。它允许应用程序共享数据,并提供对数据的访问和修改。内容提供器的生命周期包括onCreate()、query()、insert()、update()和delete()等方法。当内容提供器被创建时,会调用onCreate()方法。然后,通过调用query()、insert()、update()和delete()方法来执行对数据的操作。最后,当内容提供器不再需要时,会调用onDestroy()方法来销毁内容提供器。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值