Activity的生命周期

完整生命周期

        完整的生命周期  从启动到消亡    onCreate()  - onstart() - onResume() - onPause() - onStop() - onDestory()

你的activity应该在 onCreate() 方法里完成所有“全局global”状态的设置(比如定义layout),而在onDestroy() 方法里释放所有占用的资源。

        例如,如果你的activity有一个后台运行的线程,用于从网络下载数据, 那么你应该在 onCreate() 方法里创建这个线程并且在 onDestroy() 方法里停止这个线程。

可见生命周期

        activity的可见生存期会在 onStart() 调用和 onStop() 调用之间发生。在这期间,用户可在屏幕上看见这个activity并可与之交互。
例如,当一个新的activity启动后调用了 onStop() 方法,则这个activity就无法被看见了。在这两个方法之间,你可以管理那些显示activity所需的资源。

例如,你可以在 onStart() 方法里注册一个 BroadcastReceiver 用于监控影响用户界面的改动。并且当用户不再看到你的显示内容时,在 onStop() 方法里注销掉它。系统会在activity的整个生存期内多次调用 onStart() 和onStop(),因为activity可能会在显示和隐藏之间不断地来回切换。

前台生存期

        activity的前台生存期会在 onResume() 调用和 onPause() 之间发生。在这期间,activity是位于屏幕上所有其它的activity之前,并且拥有用户的输入焦点。activity可以频繁地进入和退出前台——例如, 当设备进入休眠时或者弹出一个对话框时,onPause() 就会被调用。因为这个状态可能会经常发生转换,为了避免切换迟缓引起的用户等待,这两个方法中的代码应该相当地轻量化。 

生命周期的转换

      当Activity显示  onCreate() -  onStart() - onResume() 
      当Activity进入后台   onPause() - onStop() 

      当从后台进入前台 onRestart() - onStart()  - onResume() 

      当A被B覆盖时候 A onPause()  -  B onCreate() - B onStart() - B onResume() - A onStop()

      当别人打进电话:  onPause -> onStop 
      当挂断电话:         onRestart-> onStart -> onResume


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈德山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值