Activity生命周期管理之二——Pausing或者Resuming一个Activity
来源:互联网 发布:ubuntu安装步骤失败 编辑:程序博客网 时间:2024/05/21 09:59
app使用期间,前台Activity经常被其他的可视组件遮挡,进入paused状态,例如一个对话框弹出时,只要Activity部分可见,但没获得焦点,就处在paused状态
然而,一旦Activity完全不可见,就处在stopped状态
当Activity进入paused状态时,系统调用onPause()方法,其中你可以停止一些任务,或者保存一些数据防止用户其后又退出,如果用户又返回,可以调用onResume()方法脱离paused状态
Note: 当Activity接到一个onPause()调用时,可能预示着用户是暂时离开,还会回来,也通常是用户离开时的第一个提示
Pause你的Activity
当Activity接到一个onPause()调用,技术上意味着Activity部分可见,但通常表示用户离开这个Activity,即将进入stopped状态,在onPause()中,通常要做一下事情:
- 停止动画或者其他正在进行的耗费CPU的动作
- 提交未保存的变化,但是只有在用户认为数据应该被保存的时候,例如邮件的草稿
- 释放系统资源,例如broadcast receivers, 传感器句柄(例如GPS),或者其他影响电池电量而用户有不用的资源
例如,使用照相机,在onPause()中就可以关掉
@Overridepublic void onPause() { super.onPause(); // Always call the superclass method first // Release the Camera because we don't need it when paused // and other activities might need to use it. if (mCamera != null) { mCamera.release() mCamera = null; }}
通常,不应该在onPause()中关闭CPU敏感的资源,像database connection,会延缓Activity之间的转换,他们最好在onStop()中实现
如果Activity将要进入Stopped状态,在onPause()中就要相对简单的完成操作以使用户能尽快转到下一个Activity,免得影响用户体验
Note: Activity处于paused状态时,Activity的实例还在内存中存在,回到Resumed状态时不需要重新初始化
Resume你的Activity
从paused状态到resumed状态调用onResume()
只要Activity到前台就要调用onResume()方法,包括第一次创建Activity,所以在onRe()方法中要初始化onPause()中释放的组件和其他每次进入resumed状态要实现的动作,例如动画或者只有在获得用户焦点才需要初始化的组件
例如,下面的例子初始化在onPause()中释放的Carema
@Overridepublic void onResume() { super.onResume(); // Always call the superclass method first // Get the Camera instance as the activity achieves full user focus if (mCamera == null) { initializeCamera(); // Local method to handle camera init }}
- Activity生命周期管理之二——Pausing或者Resuming一个Activity
- Activity生命周期理解之二 Pausing and Resuming an Activity
- Android training 管理Activity生命周期之暂停/恢复Activity(Pausing and Resuming an Activity)
- 管理Activity的生命周期(2)Pausing和Resuming
- Android学习路线(十三)Activity生命周期——暂停和恢复(Pausing and Resuming )一个Activity
- Pausing and Resuming an Activity
- Pausing and Resuming an Activity
- Activity生命周期管理之三——Stopping或者Restarting一个Activity
- 06Pausing and Resuming an Activity
- Android官方Training阅读笔记 ---- Managing the Activity Lifecycle(Pausing and Resuming an Activity) (二)
- [Android Training视频系列]2.2 Pausing and Resuming an Activity
- Pausing and Resuming an Activity 暂停和恢复活动
- Activity生命周期管理之一——Starting一个Activity
- android activity管理(二)之Activity(ActivityClientRecord)生命周期管理
- Android官方文档翻译 十八 4.2Pausing and Resuming an Activity
- Activity生命周期 之 重新创建一个Activity
- Android之Activity(二)生命周期
- Android 组件 — Activity (生命周期管理)
- 采用新的方法解决extjs4.1 grid合并单元格问题
- Android Support library not installed问题解决
- js-jQuery对象与dom对象相互转换
- android 设置滚动条样式
- OpenGL之坐标转换(好文-清晰版)
- Activity生命周期管理之二——Pausing或者Resuming一个Activity
- IE6的3像素bug新解决办法
- MD5
- linux 下cgi控制机器重启
- 中文参数处理
- 存储过程代码关于反跑批批量与日更新
- ubuntu开机自动加载iptables配置
- linux 多线程信号总结
- ioctl