开发者社区> 杨振平> 正文

Android官方入门文档[13]暂停和恢复一个Activity活动

简介: Android官方入门文档[13]暂停和恢复一个Activity活动 Pausing and Resuming an Activity暂停和恢复一个Activity活动   This lesson teaches you to1.
+关注继续查看

Android官方入门文档[13]暂停和恢复一个Activity活动


Pausing and Resuming an Activity
暂停和恢复一个Activity活动

 

This lesson teaches you to
1.Pause Your Activity
2.Resume Your Activity

You should also read
•Activities
这节课教你
1.暂停您的Activity活动
2.恢复您的Activity活动

你也应该阅读
•Activity活动

Try it out
试试吧

Download the demo
ActivityLifecycle.zip
下载演示
ActivityLifecycle.zip

During normal app use, the foreground activity is sometimes obstructed by other visual components that cause the activity to pause. For example, when a semi-transparent activity opens (such as one in the style of a dialog), the previous activity pauses. As long as the activity is still partially visible but currently not the activity in focus, it remains paused.
在正常的应用程序使用时,前台Activity活动有时通过致使所述activity暂停等可视部件阻碍。例如,当一个半透明activity打开(诸如一个在一个对话的方式),所述先前Activity活动暂停。只要Activity活动仍部分地可见的,但目前未处于焦点中的Activity活动,它保持暂停状态。

However, once the activity is fully-obstructed and not visible, it stops (which is discussed in the next lesson).
然而,一旦活性完全阻塞和不可见的,它停止(这将在下一课讨论)。

As your activity enters the paused state, the system calls the onPause() method on your Activity, which allows you to stop ongoing actions that should not continue while paused (such as a video) or persist any information that should be permanently saved in case the user continues to leave your app. If the user returns to your activity from the paused state, the system resumes it and calls the onResume() method.
为您的Activity活动进入暂停状态,系统调用的onPause()方法的Activity活动,它允许你停止不应该继续暂停时(如视频)正在进行的行动或持续应永久保存在任何情况下,信息用户继续留下您的应用程序。如果用户返回到从暂停状态的activity,系统恢复,并调用onResume()方法。

Note: When your activity receives a call to onPause(), it may be an indication that the activity will be paused for a moment and the user may return focus to your activity. However, it's usually the first indication that the user is leaving your activity.
注意:当你的Activity活动接接收一个调用onPause(),它可能是一个迹象,该Activity活动将被暂停了一会儿,用户可以焦点返回到你的Activity活动。然而,这通常是第一个迹象表明,用户离开你的Activity活动。

Figure 1. When a semi-transparent activity obscures your activity, the system calls onPause() and the activity waits in the Paused state (1). If the user returns to the activity while it's still paused, the system calls onResume() (2).
图1.当一个半透明activity掩盖了你的Activity活动,系统调用的onPause()和暂停状态的activity等待(1)。如果用户返回到该Activity活动,而它仍然暂停,系统调用onResume()(2)。

 

Pause Your Activity
暂停你的Activity活动


--------------------------------------------------------------------------------

When the system calls onPause() for your activity, it technically means your activity is still partially visible, but most often is an indication that the user is leaving the activity and it will soon enter the Stopped state. You should usually use the onPause() callback to:
•Stop animations or other ongoing actions that could consume CPU.
•Commit unsaved changes, but only if users expect such changes to be permanently saved when they leave (such as a draft email).
•Release system resources, such as broadcast receivers, handles to sensors (like GPS), or any resources that may affect battery life while your activity is paused and the user does not need them.
当系统调用的onPause()为您的Activity活动,这在技术上意味着你的Activity活动仍是部分可见,但大多数情况下是显示用户留下activity,它会很快进入停止状态。通常你应该使用的onPause()回调至:
•停止动画或可能消耗CPU其他正在进行的行动。
•提交未保存的更改,但前提是用户希望这样的改变,当他们离开(如电子邮件草稿)被永久保存。
•释放系统资源,如广播接收器,手柄传感器(如GPS),或可能影响电池寿命,同时您的Activity活动将暂停,用户不需要他们的任何资源。

For example, if your application uses the Camera, the onPause() method is a good place to release it.
例如,如果你的应用程序使用相机时,在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;
    }
}

Generally, you should not use onPause() to store user changes (such as personal information entered into a form) to permanent storage. The only time you should persist user changes to permanent storage within onPause() is when you're certain users expect the changes to be auto-saved (such as when drafting an email). However, you should avoid performing CPU-intensive work during onPause(), such as writing to a database, because it can slow the visible transition to the next activity (you should instead perform heavy-load shutdown operations during onStop()).
通常情况下,你不应该使用的onPause()来存储用户的变化(如进入了一个形式的个人信息)到永久存储。你应该坚持在onPause()内用户更改为永久存储是仅当你某些用户期望的变化是自动保存(比如,起草一封电子邮件时)。然而,你应该避免的onPause()期间执行CPU密集型的工作,如写入数据库,因为它可以减缓可见过渡到下一个Activity活动(你应该不是的onStop()期间执行高负载的关机操作)。

You should keep the amount of operations done in the onPause() method relatively simple in order to allow for a speedy transition to the user's next destination if your activity is actually being stopped.
你应该保持,以便允许为迅速过渡到用户的下一个目的地,如果您的activity实际上正在停在的onPause()方法比较简单进行操作的量。

Note: When your activity is paused, the Activity instance is kept resident in memory and is recalled when the activity resumes. You don’t need to re-initialize components that were created during any of the callback methods leading up to the Resumed state.
注意:当你的Activity活动暂停,Activity活动实例保持驻留在内存中的Activity活动恢复的时候被调用。你不需要重新初始化过程中的任何的回调方法导致对续状态中创建的组件。

 

Resume Your Activity
恢复您的Activity活动


--------------------------------------------------------------------------------

When the user resumes your activity from the Paused state, the system calls the onResume() method.
当用户从恢复暂停状态的activity时,系统调用onResume()方法。

Be aware that the system calls this method every time your activity comes into the foreground, including when it's created for the first time. As such, you should implement onResume() to initialize components that you release during onPause() and perform any other initializations that must occur each time the activity enters the Resumed state (such as begin animations and initialize components only used while the activity has user focus).
请注意,系统调用这个方法每一个你的Activity活动进入前台,当它第一次创建包括时间。因此,你应该实现onResume()来初始化你的onPause()期间释放组件和执行必须发生的每个该Activity活动每次进入恢复状态任何其他初始化(如开始动画和初始化组件仅用于而Activity活动有用户焦点)。

The following example of onResume() is the counterpart to the onPause() example above, so it initializes the camera that's released when the activity pauses.
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
    }
}


Next: Stopping and Restarting an Activity
下一页:停止和重新启动的Activity活动

本文翻译自:https://developer.android.com/training/basics/activity-lifecycle/pausing.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android 4.1官方文档chm格式
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/7999630 最近看到一个开源项目,某位爱好者把Android 4.1官方文档做成了CHM,就像jdk的chm一样,查阅API极其方便。
688 0
Android官方开发文档Training系列课程中文版:OpenGL绘图之环境配置
原文地址:http://android.xsoftlab.net/training/graphics/opengl/index.html 引言 Android framework层为创建绚丽的功能性UI提供了大量的标准工具。
1109 0
官方解读阿里云618活动策略,带你玩转阿里云618!
直播介绍: 本次阿里云618大促有什么重磅的促销活动呢? 本次618的拼团活动,满返活动 怎么玩呢? 都有哪些产品参与活动呢?我改如何选择呢? 有没有爆款产品推荐呢? 尽在618直播!买之前必看!带你玩转阿里云618! 直播时间: 2019-06-17 16:00 至 17:00 观看直播: 扫码即可观看本次直播 活动策略解答 a.
10886 0
我的《Android官方开发文档Training系列课程中文版》的中期翻译计划
从2016年的3月份开始到现在,对于Android文档的翻译已经进行了两个月的时间。虽然数量还不及总篇数的一半,但是经过一番整理,发现翻译的文章还不少,目前为止已经有56篇了。这个过程也陆陆续续的坚持了下来。
671 0
Android官方开发文档Training系列课程中文版:打印内容之自定义文档打印
原文地址:http://android.xsoftlab.net/training/printing/custom-docs.html 对于一些应用,比如绘图类APP,版面设计类APP以及其它APP,这些APP都关注图形的输出,有一个漂亮的打印页面是它们的关键特性。
795 0
Android官方开发文档Training系列课程中文版:通知用户之创建不同导航方式的Activity
原文地址:http://android.xsoftlab.net/training/notify-user/navigation.html 设计通知时要考虑到用户所预想的导航体验。
710 0
欢迎参与 KubeVela 官方文档翻译活动
KubeVela v1.0 启用了新的官网架构和文档维护方式,新增功能包括文档版本化控制、i18n 国际化以及自动化流程。但目前 KubeVela 官方文档只有英文版,这提高了学习和使用 KubeVela 的门槛,不利于项目的传播和发展,同时翻译工作也能显著提升语言能力,帮助我们拓宽阅读技术资料的广度,故组织本次活动。
1238 0
Android官方开发文档Training系列课程中文版:网络操作之网络连接
原文地址:http://android.xsoftlab.net/training/basics/network-ops/index.html 引言 这节课将会学习最基本的网络连接,监视网络连接状况及网络控制等内容。
730 0
官方文档:Android应用程序运行的性能设计
  Android应用程序运行的移动设备受限于其运算能力,存储空间,及电池续航。由此,它必须是高效的。电池续航可能是一个促使你优化程序的原因,即使他看起来已经运行的足够快了。由于续航对用户的重要性,当电量耗损陡增时,意味这用户迟早会发现是由于你的程序。
693 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
20692 0
+关注
杨振平
杨振平,CSDN云计算博客专家,微软多个开源项目的Committer和Contributor,精通微软私有云和公有云,System Center Orchestrator源码级专家,开有Redis,Memcached,WebRTC等网络课程,目前在微创软件负责开源和云计算的项目。
577
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载