繁体   English   中英

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

[英]Different behavior depending upon how screen is turned off

根据屏幕的关闭方式,我发现一种奇怪的情况。 如果Android关闭屏幕或按下电源按钮以关闭屏幕,则我的应用程序将paused 按下电源按钮以重新打开屏幕时,该应用不会 resumes 问题 几分钟或数十分钟后,情况就是如此。

这是它偏离的地方。 如果my app turns the screen off ,我的应用程序pauses的预期,但我的应用程序也当即毙命

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

我设置了日志记录来确认这一点,但是为什么行为有所不同?

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

Android系统尝试尽可能长时间地维护应用程序进程,但最终需要删除旧进程以为新的或更重要的进程回收内存。 为了确定保留哪些进程以及杀死哪些进程,系统会根据进程中运行的组件以及这些组件的状态,将每个进程置于“重要性层次结构”中。 为了恢复系统资源,必须先删除重要性最低的进程,然后再删除重要性次低的进程,依此类推。

如前所述,“基于进程中运行的组件”意味着您的应用程序在OS中的排名可能不高,因为您可能尚未运行Service等,因此最终被杀死。

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

在使电池在Android设备中使用更长时间的斗争中,还有一个:设备的挂起/恢复状态。 暂停和恢复按三个步骤进行,因此最好一起讨论。 基本上,当使用电源按钮将设备挂起或屏幕保护程序超时到期时,设备将挂起。 如果再次按下电源按钮,它将恢复到锁定屏幕。 此时,如果用户解锁设备,则该应用程序将恢复。 如果用户等待几秒钟而未解锁锁定屏幕,则设备将再次挂起。

由于这显然是一种低功耗状态,因此该应用程序应该已经停止了所有渲染和声音,并且可能停止了不需要100%的任何后台处理即可保持该应用程序正常运行。

问候!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM