当有电话时正在运行的应用程序会发生什么?

时间:2013-06-24 12:38:35

标签: android performance call telephony

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

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

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

2 个答案:

答案 0 :(得分:2)

  

它是否仍然会在后台继续执行

至少几毫秒,是的。无论应用程序如何移至后台,一旦在后台运行,其进程就有资格终止,以释放其他应用程序的RAM。当发生这种情况取决于很多变量 - 它可能是几毫秒,也可能是几个小时。

  

并优先改变它吗?

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

  

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

无论大量的RAM和CPU,Android的应用程序进程可能会在任何时候由Android终止。

答案 1 :(得分:1)

区分应用程序本身和被隐藏的Activity非常重要。 Activity只是应用程序的一部分。当隐藏Activity时,某些lifecycle methods会被调用为部分隐藏(onPause)或完全隐藏(onStop)。这不一定会影响您在隐藏Activity之前启动的后台进程。即使隐藏了Activity,该应用仍然存在。作为现有应用程序进程的一部分,在给定Activity为前台时启动的后台线程和服务仍将运行(假设操作系统资源不低)。

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