[Android Training视频系列]2.2 Pausing and Resuming an Activity

1.主要内容
本讲介绍onPause和onResume,主要分析了在onPause函数中应该执行哪些操作。

2.视频讲解

http://www.eyeandroid.com/thread-11291-1-1.html

3.翻译参考

在正常的程序使用中,处于前台运行的activity有时会被另外一些可见的组件遮挡,从而造成activity被暂停。比如,一个半透明的activity(类似一个对话框)被打开,先前那个activity就会被暂停。虽然这个activity还有部分可见,但是当前的焦点不在这个activity上,因此它保持在paused状态。

不过,一旦这个activity被全部遮挡,处于不可见的状态,那么它就是被停止了。(下个教程讨论)
如果你的activity要进入paused状态,系统会调用你的activity种的onPause()方法,这个方法让你能够暂停那些不应该继续运行的行为(比如暂停视频播放),或者保存那些应该永久保存的用户数据。一旦用户从paused状态返回,系统能够调用onResume()方法恢复以前的运行。
提示:当activity接收调用onPause()时,这可能表明activity要暂时进入paused状态,用户可能马上就重新获得activity的焦点。但是,它也是用户离开这个activity时会调用的第一个方法。
图解:当一个半透明的activity覆盖你的activity时,系统调用onPause(),activity就会在Paused状态中等待(1)。系统调用onResume()方法返回activity。
暂停你的activity

当系统调用onPause()方法的时候,技术上说明activity还是能部分可见的,但是大部分情况表明用户要离开activity,它将进入Stopped状态。你通常使用onPause()函数做下面的事:
  • 停止消耗cpu的动画或者运行中的动作。
  • 提交未保存的更改,但是只是保存用户离开后期望永久保存的东西(比如邮件草稿)。
  • 释放系统资源,比如广播接收器,传感器(比如GPS),或者消耗电量的资源,这些资源是activity暂停后用户不再需要的。
例如,如果你的程序需要使用摄像头,onPause()方法中是释放它的好地方。

  1. @Override
  2. public void onPause() {
  3. super.onPause();  // 通常先调用父类方法
  4. // 释放摄像头资源
  5. if (mCamera != null) {
  6. mCamera.release()
  7. mCamera = null;
  8. }
  9. }

通常情况下,你不需要使用onPause()方法储存用户的修改(比如填写信息的表单)到固定存储器。只有在用户真的期望自动保存数据(比如邮件草稿)的时候才需要在onPause()方法中保存。你应该尽量避免在onPause()方法中让CPU进行密集的工作,比如写入数据到数据库,因为这样会减慢你进入下一个activity的速度(你应该在onStop()中执行这些高负载的关闭操作)。

如果你的activity确实需要被停止话,你应该保持你onPause()方法尽量的简单,这样能够保证快速的转换到用户的下一个目的地。
提示:当你的activity已经被paused,这个activity实例会被保持在内存中,当activity需要被恢复的时候被调用。你不需要再重新初始化组件。
恢复你的activity

当用户从Paused状态恢复你的activity的时候,系统调用onResume()函数。
需要了解的是activity每次进入前台都会调用这个方法,包括activity被第一次创建的时候。这样的话,你必须在onResume()方法中初始化那些onPause()中释放的组件,并且执行任何需要在Resumed状态中需要的初始化工作。(比如开始动画和初始化activity前台状态需要的组件)
下面的例子和上面onPause()的例子相对应,这里初始化暂停时释放的摄像头资源。
  1. @Override
  2. public void onResume() {
  3. super.onResume();  // 调用父类方法
  4. // 当activity取得用户焦点时取得摄像头实例
  5. if (mCamera == null) {
  6. initializeCamera(); // 摄像头初始化的本地方法
  7. }
  8. }

posted on 2012-12-14 00:58 EyeAndroid 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/eyeandroid/archive/2012/12/14/2817377.html

[Android Training视频系列]2.2 Pausing and Resuming an Activity相关推荐

  1. [Android Training视频系列]2.4 Recreating an Activity

    [Android Training视频系列]2.4 Recreating an Activity 1.主要内容 本讲讲解onSaveInstanceState与onRestoreInstanceSta ...

  2. [Android Training视频系列] 8.3 Dealing with Audio Output Hardware

    [Android Training视频系列] 8.3 Dealing with Audio Output Hardware 用户在播放音乐的时候有多个选择,可以使用内置的扬声器,有线耳机或者是支持A2 ...

  3. [Android Training视频系列] 8.1 Controlling Your App’s Volume and Playback

    主要内容: 1 鉴别使用的是哪个音频流 2 使用物理音量键控制应用程序的音量 3 使用物理播放控制键来控制应用程序的音频播放 视频讲解:http://www.eyeandroid.com/thread ...

  4. [Android Samples视频系列之ApiDemos] App-Activity-Recreate

    [Android Samples视频系列之ApiDemos] App-Activity-Recreate 1.Demo说明与演示 该Demo演示如何动态切换Theme,要动态切换Theme必需recr ...

  5. Pausing and Resuming an Activity 暂停和恢复活动

    Pausing and Resuming an Activity 暂停和恢复活动 Previous Next Get started       This lesson teaches you to ...

  6. [Android] [音视频系列]在 Android 平台使用 AudioRecord 和 AudioTrack API 完成音频 PCM 数据的采集和播放,并实现读写音频 wav 文件

    参考 官方文档地址:https://developer.android.google.cn/reference/android/media/AudioRecord GitHub 地址:https:// ...

  7. Android音视频系列(八):了解音频格式WAV以及与PCM的转换

    前言 之前我们已经了解了PCM音频数据,我们理解为最原始的数据,虽然他的音质是最棒的,但是同时也暴露出两个很重要的问题: 普通播放器无法播放,数据里不包含任何跟音频格式有关的信息(声道,采样率等等): ...

  8. android声音播放函数双声道合并,Android音视频系列(七):PCM音频单声道与双声道的相互转换...

    前言 上一篇我们已经学习了PCM音频的保存格式,这一篇我们通过掌握的知识,完成PCM音频的单声道和双声道的互相转换. 正文 首先我们把上一篇的最核心部分贴出来: PCM音频保存格式 我们首先完成单声道 ...

  9. Android音频格式转换,Android音视频系列(八):了解音频格式WAV以及与PCM的转换...

    前言 之前我们已经了解了PCM音频数据,我们理解为最原始的数据,虽然他的音质是最棒的,但是同时也暴露出两个很重要的问题: 普通播放器无法播放,数据里不包含任何跟音频格式有关的信息(声道,采样率等等): ...

最新文章

  1. 海康 安全码 修改密码_手机为什么要设置PIN码 手机设置PIN码的原因【介绍】
  2. webpack流程图
  3. UBUNTU安装 Rabbitvsc可视化版本控制客户端软件
  4. nginx 源码学习笔记(二十一)—— event 模块(二) ——事件驱动核心ngx_process_events_and_timers
  5. mysql中和compute同等作用的_MYSQL中Group By的原理和用法
  6. CS224n笔记11 GRU和NMT的进一步话题
  7. 单片机开发,stm32开发,串口下载软件,flymcu
  8. vue实现导出excel
  9. spring定时器详解
  10. el-select 下拉框样式修改
  11. OriginPro中三维图片旋转
  12. 汉语语法和英语语法的区别
  13. Google谷歌地图基础
  14. 云巡店php源码,雅量云巡店赋能陈列管理 提效降本看得见
  15. 读《明朝出了个张居正》有感
  16. 草根程序员转型做项目管理走过的点点滴滴之_华为裁员感想
  17. 零基础入门Jetson Nano——软件篇
  18. 计算机怎么的设置音乐,windows7开关机音乐怎么设置_win7如何设置电脑开关机音乐-win7之家...
  19. 盘点互联网大佬背后的女人,最后一个你肯定认识
  20. 【机器学习基础】乡村F4带你入门线性回归 带python代码示例(一)

热门文章

  1. 26期20180626 rpm 安装软件包的方法 yum
  2. 全球IT支出保持稳定增长 中国IT支出将超2.3万亿元
  3. 模板方法模式(Template Pattern)
  4. NoSQL 数据库系统对比
  5. Enigma Virtual Box:生成可执行文件。
  6. c/c++ c++ file c++/stl/boost 判断文件目录是否存在
  7. Windows Phone 7的启动器和选择器
  8. XXX管理平台系统——项目教训
  9. 梦心日记本V2.0完工
  10. Spring 4.2.2以上版本和swagger集成方案和踩过的坑