Activity生命周期管理~ 暂停和继续Activity
来源:互联网 发布:网络推广提成方案 编辑:程序博客网 时间:2024/06/10 04:11
暂停和继续Activity
本课程将向您展示如何
- 暂停Activity
- 继续Activity
试一试
下载演示ActivityLifecycle.zip
在正常使用应用的过程中,前台Activity有时会被其他导致Activity暂停的可视组件阻挡。 例如,当半透明Activity打开时(比如对话框样式中的Activity),上一个Activity会暂停。 只要Activity仍然部分可见但目前又未处于焦点之中,它会一直暂停。
但是,一旦Activity完全被阻挡并且不可见,它便停止(将在下一堂课中讨论)。
当您的Activity进入暂停状态时,系统会对您的 Activity
调用 onPause()
方法,通过该方法,您可以停止不应在暂停时继续的进行之中的操作(比如视频)或保留任何应该永久保存的信息,以防用户坚持离开应用。如果用户从暂停状态返回到您的Activity,系统会重新开始该Activity并调用 onResume()
方法。
注意:当您的Activity收到对 onPause()
的调用时,可能意味着Activity将暂停 一会,并且用户可能从焦点返回到您的Activity。但这通常意味着用户即将离开您的Activity。
暂停Activity
当系统为您的Activity调用 onPause()
时,它从技术角度看意味着您的Activity仍然处于部分可见状态,但往往说明用户即将离开Activity并且它很快就要进入“停止”状态。 您通常应使用 onPause()
回调:
- 停止动画或其他可能消耗 CPU 的进行之中的操作。
- 提交未保存的更改,但仅当用户离开时希望永久性保存此类更改(比如电子邮件草稿)。
- 释放系统资源,比如广播接收器、传感器手柄(比如 GPS) 或当您的Activity暂停且用户不需要它们时仍然可能影响电池寿命的任何其他资源。
例如,如果您的应用使用 Camera
, 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()
永久性存储用户更改(比如输入表格的个人信息)。 只有在您确定用户希望自动保存这些更改的情况(比如,电子邮件草稿)下,才能在 onPause()
中永久性存储用户更改。但您应避免在 onPause()
期间执行 CPU 密集型工作,比如向数据库写入信息,因为这会拖慢向下一Activity过渡的过程(您应改为在 onStop()
期间执行高负载关机操作。
您应通过相对简单的方式在 onPause()
方法中完成大量操作,这样才能加快在您的Activity确实停止的情况下用户向下一个目标过渡的速度。
注意:当您的Activity暂停时,Activity
实例将驻留在内存中并且在Activity继续时被再次调用。您无需重新初始化在执行任何导致进入“继续”状态的回调方法期间创建的组件。
继续Activity
当用户从“暂停”状态继续您的Activity时,系统会调用 onResume()
方法。
请注意,每当您的Activity进入前台时系统便会调用此方法,包括它初次创建之时。 同样地,您应实现onResume()
初始化您在 onPause()
期间释放的组件并且执行每当Activity进入“继续”状态时必须进行的任何其他初始化操作(比如开始动画和初始化只在Activity具有用户焦点时使用的组件)。
onResume()
的以下示例对应于以上的 onPause()
示例,因此它初始化Activity暂停时释放的照相机。
@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
本课程将向您展示如何
- 暂停Activity
- 继续Activity
试一试
ActivityLifecycle.zip
在正常使用应用的过程中,前台Activity有时会被其他导致Activity暂停的可视组件阻挡。 例如,当半透明Activity打开时(比如对话框样式中的Activity),上一个Activity会暂停。 只要Activity仍然部分可见但目前又未处于焦点之中,它会一直暂停。
但是,一旦Activity完全被阻挡并且不可见,它便停止(将在下一堂课中讨论)。
当您的Activity进入暂停状态时,系统会对您的 Activity
调用 onPause()
方法,通过该方法,您可以停止不应在暂停时继续的进行之中的操作(比如视频)或保留任何应该永久保存的信息,以防用户坚持离开应用。如果用户从暂停状态返回到您的Activity,系统会重新开始该Activity并调用 onResume()
方法。
注意:当您的Activity收到对 onPause()
的调用时,可能意味着Activity将暂停 一会,并且用户可能从焦点返回到您的Activity。但这通常意味着用户即将离开您的Activity。
暂停Activity
当系统为您的Activity调用 onPause()
时,它从技术角度看意味着您的Activity仍然处于部分可见状态,但往往说明用户即将离开Activity并且它很快就要进入“停止”状态。 您通常应使用 onPause()
回调:
- 停止动画或其他可能消耗 CPU 的进行之中的操作。
- 提交未保存的更改,但仅当用户离开时希望永久性保存此类更改(比如电子邮件草稿)。
- 释放系统资源,比如广播接收器、传感器手柄(比如 GPS) 或当您的Activity暂停且用户不需要它们时仍然可能影响电池寿命的任何其他资源。
例如,如果您的应用使用 Camera
, 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()
永久性存储用户更改(比如输入表格的个人信息)。 只有在您确定用户希望自动保存这些更改的情况(比如,电子邮件草稿)下,才能在 onPause()
中永久性存储用户更改。但您应避免在 onPause()
期间执行 CPU 密集型工作,比如向数据库写入信息,因为这会拖慢向下一Activity过渡的过程(您应改为在 onStop()
期间执行高负载关机操作。
您应通过相对简单的方式在 onPause()
方法中完成大量操作,这样才能加快在您的Activity确实停止的情况下用户向下一个目标过渡的速度。
注意:当您的Activity暂停时,Activity
实例将驻留在内存中并且在Activity继续时被再次调用。您无需重新初始化在执行任何导致进入“继续”状态的回调方法期间创建的组件。
继续Activity
当用户从“暂停”状态继续您的Activity时,系统会调用 onResume()
方法。
请注意,每当您的Activity进入前台时系统便会调用此方法,包括它初次创建之时。 同样地,您应实现onResume()
初始化您在 onPause()
期间释放的组件并且执行每当Activity进入“继续”状态时必须进行的任何其他初始化操作(比如开始动画和初始化只在Activity具有用户焦点时使用的组件)。
onResume()
的以下示例对应于以上的 onPause()
示例,因此它初始化Activity暂停时释放的照相机。
@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生命周期管理~ 暂停和继续Activity
- 暂停和继续Activity
- Activity生命周期 之 暂停和恢复Activity
- Activity生命周期之暂停和恢复Activity
- Training--暂停和继续(运行)一个Activity
- 安卓训练-开始-管理 Activity 生命周期-暂停和恢复 Activity
- 管理Activity的生命周期(3)暂停和重启一个Activity
- Android官方开发文档Training系列课程中文版:管理Activity的生命周期之暂停和恢复Activity
- Android training 管理Activity生命周期之暂停/恢复Activity(Pausing and Resuming an Activity)
- Activity生命周期和堆栈管理
- 暂停和恢复Activity
- Android 键盘和activity生命周期管理
- 资源加载和activity生命周期管理
- Android Activity生命周期管理
- Android Activity生命周期管理 .
- Android Activity生命周期管理
- 管理Activity的生命周期
- Android Activity生命周期管理
- RN中的几种定时器
- 编译原理 - 在 Windows 平台下使用 Flex 和 Bison
- Java/Android中的函数调用&回调函数&自定义回调函数
- PHP mysqli 增删改查(一)
- cocos2d-x 中lua自动控制label宽度(适用于多国语言版)
- Activity生命周期管理~ 暂停和继续Activity
- IO流—File
- Node.js(1)
- HBase LSM树
- 筋斗云教程(一): 运行筋斗云应用
- 添加当前程序到设备管理列表里
- 第3周项目3-形状类族的中的纯虚函数
- ListView
- ios学习--网络流量统计