不同的行为取决于屏幕的关闭方式

时间:2014-03-06 16:54:25

标签: android screen behavior

我发现一个奇怪的情况取决于屏幕的关闭方式。如果Android关闭屏幕或按下电源按钮关闭屏幕,我的应用程序按预期为paused。按下电源按钮以重新打开屏幕时,应用resumes 无问题。这种情况会持续一会儿或几十分钟过去。

这是它偏离的地方。如果my app turns the screen off,我的应用pauses符合预期,但我的应用也会立即被杀

使用电源按钮重新打开屏幕时,应用程序不再运行

我已经设置了确认这一点的日志记录,但为什么行为上存在差异?

1 个答案:

答案 0 :(得分:1)

您看到的行为实际上是预期的,Android设备中运行的每个进程都有优先级,一旦您的应用程序暂停,如果另一个具有更高优先级的进程,操作系统可能会将其删除需要记忆,根据谷歌的文档:

  

Android系统尝试维护as的应用程序进程   尽可能长,但最终需要删除旧进程   为新的或更重要的流程回收内存。确定哪个   要保留的进程和要杀死的进程,系统会放置每个进程   基于在其中运行的组件进入“重要性层次结构”   过程和那些组件的状态。进程最低   首先消除重要性,然后消除次低的重要性   重要性,等等,以恢复系统资源。

如前所述“基于流程中运行的组件”意味着您的应用程序可能在操作系统中排名不高,因为您可能没有运行Service等,因此最终会被杀死...

您可以查看此文档:http://developer.android.com/guide/components/processes-and-threads.html,它解释了流程生命周期,并且应该让您更好地了解如何处理它......

此外,在Android设备中使电池寿命更长的战斗中,有一个: 暂停/恢复设备上的状态。 暂停和恢复以三步顺序发生,因此最好进行讨论 一起。基本上,当设备暂停电源按钮或屏幕保护程序超时到期时,设备将暂停。如果再次按下电源按钮,它 恢复到锁定屏幕。此时,如果用户解锁了设备,则应用程序 恢复了。如果用户在没有解锁锁定屏幕的情况下等待几秒钟,那么 设备将再次暂停。

  

由于这显然属于低功耗状态,因此应用程序应该   已停止所有渲染和声音,可能还有任何背景   处理不是100%,以保持应用程序活着。

问候!