千家信息网

如何暂停和恢复Activity Android

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章给大家介绍如何暂停和恢复Activity Android,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。暂停和恢复Activity(Pausing and Resuming
千家信息网最后更新 2025年01月19日如何暂停和恢复Activity Android

这篇文章给大家介绍如何暂停和恢复Activity Android,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

暂停和恢复Activity(Pausing and Resuming an Activity)

在正常的应用程序使用,前台activity有时会被其他可视化组件遮挡,从而 造成activity的暂停。例如,当一个半透明的activity打开时(如在一个风格对话框),以前的activity就暂停了。只要 activity仍然是部分可见,但目前没有获得焦点,它就依然处于暂停状态。

然而,一旦activity被完全遮挡住,并且对用户不可见了,那么它就停止了 (这是下一课需要讨论的内容)。

当你的activity进入暂停状态,系统将对你的Activity调用 onPause()方法。在此方法中,你可以停止那些在暂停状态时不应该继续进行的行为(如视频播放),或者持久化一些需要***保存的信息,以使得用户继 续留在你的应用程序。如果用户返回到你的activity,系统将从暂停状态中恢复它,并调用onResume()方法。

注意:当你的activity接收到一个对onPause()的调用时,它可能 是一个迹象,表明activity将暂停一会儿,然后用户还会返回到你的activity。然而,它通常是***个迹象,表明用户正在离开你的 activity。

图 1。当一个半透明的activity掩盖了你的 activity,系统就会调用onPause(),activity等 在暂停状态(1)。如果用户返回到仍处于暂停状态的 activity,系统就会调用onResume()(2)。

暂停你的Activity(Pause Your Activity)

当系统为你的activity调用onPause()时,从技术上讲,你的 activity仍然是部分可见的,但最常见的是表明用户正在离开这个activity,并且它也将很快进入停止(Stopped)状态。你应该通常使用 onPause()回调:
停止动画效果或者其他正在进行地消耗CPU资源的行为。

提交尚未保存的更改,但前提是用户希望这样处理:当他们离开时,需要将所做的变动做一个***地保存(如撰写电子邮件)。
释放一些系统资源,例如广播接收器,处理传感器(如GPS),或任何会影响电池寿命的资源,而与此同时你的activity又被暂停了,用户不再需要这些 资源。

举个例子,如果你的应用程序使用了照相机,那么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()方法中将用户的这种变 更写到持久化存储中。然而,你应该避免在onPause()中执行CPU高负荷工作,如读写数据库,因为它会减缓到下一个activity的过渡动作(你 应该在onStop()中执行重负荷关闭动作)。

你应该保持业务量在onPause()方法相对简单,为了让一个快速过渡到用户 的下一个目的地,如果你的activity实际上是被停止。

注意:当你的activity暂停时,该Activity实例还驻留在内存中, 并且在activity恢复时再被重新调用。你在调用任何回调方法转变到恢复状态时,不需要重新初始化那些已经创建了的组件,。

恢复你的Activity(Resume Your Activity)

当用户从暂停状态中恢复你的activity时,系统就会调用 onResume()方法。

要注意的是,每次你的activity进入前景时,系统都会调用这个方法,包括 当它***次被创建的时候。因此,你应该在实现onResume()时,初始化那些你在onPause()会释放的组件,并且执行那些每次activity 进入恢复状态时都必须完成的初始化动作(如开始动画和初始化activity获得用户焦点时需要使用的组件)。

下面的例子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     } }

关于如何暂停和恢复Activity Android就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

用户 状态 方法 系统 组件 资源 例子 内容 动作 应用程序 正在 程序 应用 信息 动画 更多 焦点 电子 电子邮件 行为 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 北京保吧网络技术有限公司 新罗区宇凡网络技术工作室 嘉兴富士康工控机服务器 数据库3表联查 报刊订阅管理系统数据库实验 研究生网络安全专业中南大学 cs完美世界不能在安全服务器 cbm数据库的题目是什么 网络安全与运维工作环境 宁波电子网络技术有哪些 福建省网络安全定级专家 数据库安全保护总结与分析 服务器参数详解 什么是两种主流的软件开发方法 建党100周年网络安全重保 海南会计软件开发创新服务 关系型数据库的优点 股市科技互联网 网络安全综合防控体系有哪些 贵州的山洞里的服务器云主机 嘉定区信息软件开发协议 JDBC数据库应用技术 网络安全主题手抄报初中生 桌面软件开发逻辑 数据库的几种删除 哈啰打车服务器线路 中央贫困数据库是谁建立的 服务器内怎么配置环境运行程序 深信服服务器负载均衡 财经开源数据库
0