activity的四种状态说明

一、Activity主要的四种状态:     

Running(运行):在屏幕前台(位于当前任务堆栈的顶部)
Paused(暂停):失去焦点但仍然对用户可见(覆盖Activity可能是透明或未完全遮挡)
Stopped(停止):完全被另一个Activity覆盖
Destroyed(销毁):退出,完全销毁

二、事件方法链

2.1  进入Activity
      onCreate  -> onStart  ->  onResume
2.2  BACK键
      onPause -> onStop -> onDestroy
2.3  HOME键
           Home键退出:onPause -> onStop 
       Home键回来:onRestart ->  onStart -> onResume  
2.4  休眠/恢复
      休眠:onPause
      恢复:onResume
2.5  旋转屏幕
      未设置android:configChanges:
      onPause  ->  onStop  ->  onDestory  ->  onCreate  -> onStart  ->  onResume 
      设置了android:configChanges="orientation|keyboardHidden":
2.6  来电
      来电,显示来电界面:
      onPause  ->  onStop
      关闭电话界面,重新回到当前Activity:
      onRestart ->  onStart -> onResume
2.7  其他Activity 
      进入下一个Activity:
      onPause  ->  onStop
      从其他Activity返回至当前Acitivity:
      onRestart ->  onStart -> onResume

三、与Activity生命周期结合的应用场景

3.1  与广播(Broadcast)结合 
      在onResume注册广播(registerLinstener),在onPause注销广播(unregisterLinstener)。 例如:
      做"摇一摇"功能(传感器)、监听网络变化,就可以在onResume中注册监听,在onPause里注销掉,已节省资源提高效率。

3.2  与服务(Service)结合
      在onStart绑定服务(bindService),在onStop中取消绑定(unbindService)。 例如: 
      需要通过Service定时更新UI上的数据,而Activity的可见周期在onStart与onStop之间,那么就可以再onStart时启动服务,在onStop时停止服务。为了节约系统资源,除了提高用户体验以外,开发人员应尽可能的优化程序。

3.3  与Cursor结合
      使用managedQuery让Activity帮你管理Cursor的生命周期,不用自己去close。但也有一些问题,补充两篇文章:这里1、 这里2。

3.4  释放资源
      可以在onDestory中释放一些资源。比如可以在onDestory时调用MediaPlayer的release。​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值