Android应用程序类生命周期文档

2024-01-06

我正在尝试查找有关的官方文档Android Application类的生命周期。显然,对于我在 StackOverflow 上发现的内容here https://stackoverflow.com/a/4209391/1334473 and here https://stackoverflow.com/a/4585733/1334473 the 应用 http://developer.android.com/reference/android/app/Application.html如果系统需要内存,则可以杀死该类。甚至this http://www.developerphil.com/dont-store-data-in-the-application-object/教程是这么说的。

但有几件事让我有点恼火:

  • 我找不到官方文件告诉我是的,Application类可以在内存不足时被杀死。
  • 我找不到任何代表的官方图Application生命周期也不是。
  • 我找不到任何合适的回调来使用Application类被杀死,除了onLowMemory() http://developer.android.com/reference/android/app/Application.html#onLowMemory()。这是否意味着我必须使用此方法来保存我的数据?
  • If the Application类因内存压力过低而被终止,应用程序再次进入前台,我怎么知道它的onCreate()该应用程序在系统终止后已重新创建?在一个Activity我会测试savedInstanceState,但据我所知,没有类似的Application class.

感谢您的启发。


我找不到官方文档告诉我,是的,Application 类可以在内存不足时被杀死。

以下是对其说明之处的参考:

  • 应用基础知识 http://developer.android.com/guide/components/fundamentals.html#proclife
  • 进程和线程 http://developer.android.com/guide/components/processes-and-threads.html
  • Android 方式的多任务处理 http://android-developers.blogspot.ru/2010/04/multitasking-android-way.html

我也找不到任何代表应用程序生命周期的官方图表。

这是一个合理的观察...虽然以下内容是基于意见的,但我最好的猜测是,这样的图表将与 Android 的多任务“哲学”相矛盾,如最后提供的参考文献中所述:

“Android 以这种方式处理应用程序的一个关键是进程不会彻底关闭。当用户离开应用程序时,它的进程会保留在后台,允许它继续工作(例如下载网页),如果如果设备永远不会耗尽内存,那么 Android 将保留所有这些进程,真正让所有应用程序始终“运行”。

当应用程序类被杀死时,我找不到任何合适的回调使用onLowMemory()。这是否意味着我必须使用此方法来保存我的数据?

关于onLowMemory() http://developer.android.com/reference/android/app/Application.html#onLowMemory%28%29其描述非常简单,我们是在谈论后台进程还是前台 UI?...

如果没有申请Activities处于前台并且操作系统内存不足,它可能会杀死该应用程序,以便没有任何Application或应用程序组件的 (Activity, Service) 回调将被调用。也就是说,(因为你正在处理Activities)我建议按照文档存储所有持久数据,在onPause() http://developer.android.com/reference/android/app/Activity.html#onPause%28%29.

如果应用程序类因低内存压力而被终止并且应用程序再次进入前台,我如何知道它的onCreate()该应用程序在系统终止后已重新创建?

你无法识别它Application http://developer.android.com/reference/android/app/Application.html's onCreate().

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android应用程序类生命周期文档 的相关文章

  • Android - 保存动态更改布局的状态

    我有一个布局 用户可以在其中添加按钮并将其放置在他们想要的位置 我想允许用户保存他们的布局 以便下次打开应用程序时加载它 有谁知道我是否可以将文件保存到 SD 卡上 或者 我可以使用某种layout getXml 方法并将其放入我的应用程序
  • BottomNavigationView - 如何获取选定的菜单项?

    我使用BottomNavigationView来切换片段 如何获取当前选定的菜单项 以防止重新打开片段 BottomNavigationView bottomNavigationView BottomNavigationView findV
  • 使用 Android 前台服务为 MediaPlayer 创建通知

    问题就在这里 我目前正在开发一个应用程序 该应用程序必须提供 A 广播播放器 来自 URL 的 AAC 直播 还有一个播客播放器 来自 URL 的 MP3 流 该应用程序必须能够在后台运行 Android 服务 并通过以下方式向用户公开持续
  • GCM 向主题发送消息:TOO_MANY_TOPICS 错误

    以前 GCM 每个应用程序有 100 万个主题订阅的限制 我发现他们现在已经取消了这一限制 基于发布 订阅模型 主题消息支持 每个应用程序无限订阅 https developers google com cloud messaging to
  • 从 Throwable 获取错误代码 - Android

    我怎样才能从错误代码可投掷 https developer android com reference java lang Throwable html public void onFailure Throwable exception 我
  • Firebase Analytics 禁用受众国家/地区跟踪

    我正在开发一个严格不允许位置跟踪的应用程序 我想使用 Firebase Analytic 的其他功能 例如 PageTransitions 和 Crashalitics 但如果我无法禁用受众位置跟踪 我就无法使用其中任何功能 这是我在 An
  • 如何将安卓手机从睡眠状态唤醒?

    如何以编程方式将 Android 手机从睡眠状态唤醒 挂起至内存 我不想获取任何唤醒锁 这意味着手机在禁用 CPU 的情况下进入 真正的 睡眠状态 我想我可以使用某种RTC 实时时钟 机制 有人有例子吗 Thanks 为了让Activity
  • 为什么将函数参数声明为最终的?

    我目前正在阅读 Sams 出版的 24 小时自学 Android 应用程序开发 一书 我对 Java Android 或其他方面还比较陌生 我对 ActionScript 3 有非常扎实的背景 它与 Java 有足够的相似之处 因此该语言本
  • RxJava、Proguard 和 sun.misc.Unsafe

    我有以下问题RxJava 1 1 0 使用时Proguard 我没有更改 RxJava 版本或其 pro文件 但更新后OkHttp我无法编译使用Proguard因为我有关于sun misc Unsafe不在场 rxJava pro keep
  • 无法在自定义 AOSP 上安装 Google Play 中的某些应用程序:项目不可用。理由:9

    我在尝试从 Google Play 安装某些应用程序时收到以下错误 LibraryUtils isAvailable not available restriction 9 DocUtils getAvailabilityRestricti
  • 在 Android 中使用 DataOutputStream 在 POST 正文中发送特殊字符 (ë ä ï)

    我目前正在开发一个具有大量服务器端通信的 Android 应用程序 昨天 我收到一份错误报告 称用户无法发送 简单 特殊字符 例如 我搜索过但没有找到任何有用的东西 可能重复 没有答案 https stackoverflow com que
  • TextView 之间有分隔线

    我正在尝试在 android studio 中创建以下布局 因为我对 android 东西还很陌生 所以我第一次尝试使用 LinearLayout 并认为这可能无法实现 现在我正在尝试使用RelativeLayout 我已经用颜色创建了这个
  • 如何在 sqlite 中将 2 列合并为新列

    我有一个包含 3 列的表 我必须将 2 列中的值按降序排列到一列中 A B C z 1 2 f 5 7 s 9 5 使用此示例 输出会将 B 列和 C 列中的值放入其中 如下所示 A B s 9 f 7 f 5 s 5 z 2 z 1 我当
  • 检查 Android 手机上的方向

    如何查看Android手机是横屏还是竖屏 当前配置用于确定要检索的资源 可从资源中获取Configuration object getResources getConfiguration orientation 您可以通过查看其值来检查方向
  • Android相机意图:如何获取全尺寸照片?

    我正在使用意图来启动相机 Intent cameraIntent new Intent android provider MediaStore ACTION IMAGE CAPTURE getParent startActivityForR
  • Android 设备上的静默安装

    我已经接受了一段时间了 在 Android 上静默安装应用程序是不可能的 也就是说 让程序安装捆绑为 APK 的应用程序 而不提供标准操作系统安装提示并完成应用程序安装程序活动 但现在我已经拿到了 Appbrain 快速网络安装程序的副本
  • 在 Android 上按下电源按钮时,如何防止先调用 onDestroy() 再调用 onCreate()

    我正在记录每个 onCreate 和 onDestroy 调用 我发现 一旦我单击 Android 上的电源按钮 以及模拟器上的电源按钮 我的活动中就会拨打电话 gt onDestroy gt onCreate 这会杀死我的游戏 然后立即从
  • Android中webview的截图方法

    我在 webview 中的 html5 canvas 上画了一些线 并尝试使用下面的代码截取 webview 的屏幕截图 WebView webView WebView findViewById R id webview webView s
  • 在webview android中加载本地html文件

    我正在尝试在 android 的 webview 中加载 html 文件的内容 但是 它给了我 网页不可用错误 如果我尝试使用谷歌或雅虎等网站 它们就会起作用 html文件位于src gt main gt assests gt index
  • 在 Android 中,如何将字符串从 Activity 传递到 Service?

    任何人都可以告诉如何将字符串或整数从活动传递到服务 我试图传递一个整数 setpossition 4 但它不需要 启动时总是需要 0 Service 我不知道为什么我不能通过使用 Service 实例从 Activity 进行操作 publ

随机推荐