在正常的app使用时,前台的activity有时被其他课时的组建所受阻而暂停。例如,当一个半透明的activity打开(诸如一个该样式的对话框),activity就会暂停。只要是部分可见但目前仍未获得焦点的activity,它保持暂停状态。

然而,一旦activity完全被阻塞和不可见时,它会停止(这将在下一课讨论)。

当你的activity进入暂停状态,系统在你的activity中调用onPause()方法,,你可以停止正在进行的行为,不应该继续而停了下来(如视频)或保存任何应永久保存的信息,以防用户继续离开应用程序。如果用户从暂停状态返回到你的activity,系统恢复它并调用onResume()方法。

图解:当一个半透明的activity掩盖了你的activity,系统调用onPause()方法,并在(1)处等待。如果用户返回到该activity,而它仍处于(1)的状态,系统调用onResume()方法(2)

暂停你的Activity


当系统为你的activity调用onPause()方法时,这在技术上意味着你的活动仍是部分可见,但大多数情况下是用户要离开你activity的迹象,它会很快进入停止状态。通常你应该使用onPause()方法去:

(1)停止当前的动画效果或者其他消耗CPU的行为

(2)提交为保存的修改,但前提是用户希望被永久修改(eg:未发送的邮件)

(3)释放系统资源,eg:broadCatdReceivers,GPS,以及一切会影响你电量和CPU的操作,前提是接下来的操作你的用户不再需要它们

例如,如果你的应用程序使用相机时,onPause()方法是一个很好的地方去将其释放。

@Override

public 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()来存储用户更改(如表单输入个人信息)永久存储。唯一一次你应该坚持用户更改永久存储在onPause()当你某些用户期望的变化自动保存(例如当起草一封电子邮件)。然而,你应该避免在cpu密集工作期间调用onPause(),如写入数据库,因为它会减缓过渡到下一个activity的速度(您应该在onStop()中执行重载关闭操作)。

你应该保持onPause()方法完成相对简单的操作,以保证在程序停止时快速过渡到用户的下一个目的地。

重新占有你的Activity


当用户从暂停状态重新回到activity,系统调用onResume()方法。

请注意,每次你的activity进入前景时系统会调用这个方法,包括第一次创建的时候。因此,你应该实现onResume()来初始化你在onPause()中释放的组件并且做一些每次进入Resumed状态时都会发生的初始化的工作(如开启一个动画和当用户获得焦点时要初始化的组件)

下面onResume()的例子是对应onPause前面的例子(),所以当activity暂停时它初始化相机。

@Override

public 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

}

}

转载于:https://www.cnblogs.com/ztSpace/p/4217200.html

Pausing and Resuming an Activity相关推荐

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

    [Android Training视频系列]2.2 Pausing and Resuming an Activity 1.主要内容 本讲介绍onPause和onResume,主要分析了在onPause ...

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

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

  3. Android学习路线(十三)Activity生命周期——暂停和恢复(Pausing and Resuming )一个Activity

    在正常使用应用的过程中,前台的activity在一些时候会被其他的组件遮挡,导致这个activity暂停.举个例子,当一个半透明的activity被打开(例如一个dialog样式的activity), ...

  4. 06Pausing and Resuming an Activity

    本节要点:paused和stop状态下的生命周期和该生命周期应该干的事情.(需要注意的是在onStop方法中释放的资源,如果Activity重新进入onResume,必须重新初始化) //====== ...

  5. Managing the Activity Lifecycle

    原链接:http://developer.android.com/training/basics/activity-lifecycle/index.html As a user navigates t ...

  6. (android文档原创翻译)管理Activity的生命周期一

    ( 英文原文链接地址) 1.启动你的Activity 不同其它的应用程序通过main()方法来启动,android系统是按照一定的顺序通过调用其生命周期(lifecycle)的回调方法来启动或者结束一 ...

  7. c语言mysql源代码,永盈会-官方网站

    SLF4J1.7 一个日志模板,从traceback打印异常受启发做的模板,可被pycharm esclip sublime等ide识别和跳转. 安卓构架组件--向项目添加组件(Adding Comp ...

  8. 【Android 插件化】Hook 插件化框架 ( 从 Hook 应用角度分析 Activity 启动流程 二 | AMS 进程相关源码 | 主进程相关源码 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  9. Android 10.0 Activity启动详解(二)

    Android 10.0 Activity启动详解(一) 我们在上一篇博客中已经介绍了关于Activity的一些基础概念.这一篇博客我们以Android 10.0的代码来分析Activity的启动流程 ...

  10. Android 深入研究之 ✨ Activity启动流程+Activity生命周期✨

    Activity分析目录 前言 Activity生命周期 1.activity的四个状态 2.activity的生命周期 3.activity优先级 Activity启动流程 Activity的启动流 ...

最新文章

  1. 美法加三位科学家获2018诺贝尔物理学奖
  2. 软件工程 之 动物世界
  3. 【快乐水题】2000. 反转单词前缀
  4. ffmpeg speex转换为mp3或者aac
  5. 计算机基础知识:什么是位、字节、字、KB、MB
  6. 在HubSpot是如何应对Fat JAR困境的
  7. HDU 5517---Triple(二维树状数组)
  8. 让画面更逼真!这个强化超分辨率GAN让老游戏迎来第二春 | 代码+论文+游戏MOD...
  9. 流畅的python 18章
  10. 白帽子讲web安全笔记
  11. 三边定位算法在OMNet++上的简单实现
  12. Linux下文件命名规则
  13. 利用input[type=range]制作一个简易的音乐播放器
  14. 在c语言中把x和y互换怎么编译,已知int x=10,y=12;编程将x和y的值相互交换
  15. 权值衰减和L2正则化傻傻分不清楚?
  16. DM MPP集群(带交叉守护进程)安装配置
  17. 数据库函数依赖与候选码求解
  18. 作用域和自由变量的介绍
  19. 20190722华为OPPO小米夜间省电模式调研
  20. sbt的安装和应用(详细步骤)

热门文章

  1. kubernetes pod往宿主机拷贝文件
  2. Django中Python3安装Crypto使用RSA
  3. vue学习-处理边界-依赖注入
  4. liunx中常用命令 -大数据
  5. Matlab 单形法原理,实验报告(单纯形法的matlab程序).doc
  6. 页面跳转_PyQt5多页面跳转
  7. linux之VMware安装Centos7
  8. 动画效果之 Canvas学习-globalCompositeOperation详解
  9. python 3.5.2 下载(带资源免费)
  10. linux文件权限中 chmod、u+x、u、r、w、x分别代表什么