0

假设我正在使用一个 RAM 和 CPU 密集型应用程序,我接到一个电话,我一定要等一分钟。在这种情况下,我想知道应用程序的命运如何。它是否仍会在后台继续执行,其优先级是否会改变?

此外,如果应用程序使用更多的 RAM 和 CPU,那么应用程序是否有可能被 android 操作系统关闭?

请分享讨论此主题的任何资源和文档。提前致谢。:)

4

2 回答 2

2

它还会在后台继续执行吗

至少几毫秒,是的。无论应用程序如何移动到后台,一旦进入后台,它的进程就有资格被终止,从而为其他应用程序释放 RAM。何时发生取决于很多变量——可能是几毫秒,也可能是几小时。

它的优先级会改变吗?

后台应用程序的进程在有助于限制其 CPU 利用率的类中运行。

此外,如果应用程序使用更多的 RAM 和 CPU,那么应用程序是否有可能被 android 操作系统关闭?

无论RAM 和 CPU 的数量如何,应用程序的进程都可能在 Android 处于后台时随时终止。

于 2013-06-24T12:44:00.970 回答
1

区分应用程序本身和Activity被隐藏的应用程序很重要。AnActivity只是应用程序的一部分。当一个Activity被隐藏时,某些生命周期方法被称为取决于它是部分隐藏(onPause)还是完全隐藏(onStop)。这不一定会影响您在Activity被遮挡之前启动的后台进程。即使 anActivity被隐藏,应用程序仍然存在。您在给定前台启动的后台线程和服务Activity仍将作为现有应用程序进程的一部分运行(假设操作系统资源不低)。

您应该做的是考虑如何在其他生命周期方法(例如onResume)中处理这些后台进程的结果,如果它们在模糊状态结束期间或之后完成。

于 2013-06-24T12:54:10.677 回答