gpt4 book ai didi

android - 为什么我的 Android 应用程序会在一夜之间关闭

转载 作者:太空狗 更新时间:2023-10-29 14:17:37 26 4
gpt4 key购买 nike

我仍在尝试了解我的 Android 应用程序的应用程序生命周期。我让我的应用程序在晚上和早上在后台运行,当我再次单击应用程序图标时,启动画面会出现。从日志文件中,我的 Android 应用程序重新启动。但是它仍然会显示昨晚的旧 Activity 。奇怪的是,我只能在我的手机上重现此内容,而不能在其他开发人员的手机上重现,而且我找不到是否有任何应用程序在一夜之间做了什么特别的事情:

  1. 这应该不是省电的原因,因为我的手机整晚都在充电
  2. 应该不是内存有限,因为没有人通宵使用手机

有人有关于 Android 上的应用程序生命周期(不是 Activity 生命周期)的好链接吗?

最佳答案

应用程序由一个或多个组件组成:Activity、Service、BroadcastReceiver 和 ContentProvider。这些中的每一个都作为您的应用程序的一部分运行,都在同一个进程中。此外,这些组件的每个入口点(onCreate、onStart 等)都在应用进程的主(或 UI)线程上运行。当您的应用程序进入后台时,该过程将被缓存并准备就绪。但是,由框架和内核决定对此的限制。

因此,您的应用在一台设备上而不是另一台设备上被破坏的根本原因是:这取决于设备以及设备上运行的内容。在 Android 框架下运行的 Linux 内核被告知哪些进程对内存资源有“限制”,并且 ActivityManager 框架组件会在给定进程属于特定类型时通知内核。例如,一个只有一个 Activity 的简单应用程序会获得一定的限制和优先级(从进程 killer 的角度来看,而不是调度程序)。另一个使用 Activity 加上标记为前台服务的服务的应用程序获得不同的优先级,使其“更难”终止。答案的“设备上运行的是什么”部分就是:每台设备上还安装了哪些其他 APK 并处于 Activity 状态。您的设备可能有更多的内存限制,或者您可能有其他具有前台服务的应用程序经常尝试访问网络,等等。因此 Activity/Service/BroadcastReceiver/ContentProvider 生命周期很重要,因为它指示您的应用程序的整个进程何时被销毁。

关于android - 为什么我的 Android 应用程序会在一夜之间关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20407547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com