0

我们正在为业务用户构建一个特定的应用程序。应用程序记录 GPS 坐标并通过 HTTP 将其发布到服务。

在测试时我们发现了一个问题,即平板电脑(Android 3.3)屏幕关闭时,应用程序无法与外部服务通信。在我打开屏幕的那一刻,应用程序立即恢复,然后能够与外部服务进行通信。

我在智能手机(Android 2.2)上对此进行了测试,即使手机屏幕关闭,它也能完美运行。

我没有为我的应用程序使用任何类型的服务。我们开始开发时牢记智能手机,但后来也将其带到了平板电脑上。我们从未想过平板电脑的行为会有所不同。

该应用程序的核心概念是定期将 GPS 坐标发送到 Web 服务。

我可以在平板电脑上做些什么,让我的应用程序在屏幕关闭或平板电脑不是为此而构建时在后台运行?

4

1 回答 1

1

从上面评论中的讨论来看,您似乎需要从 PowerManager 获取部分唤醒锁。如果没有部分唤醒锁定,设备的正常行为是在屏幕关闭时暂停 CPU。

唤醒锁是一个有点棘手的 API,但其想法是,您可以通过保持屏幕打开、保持屏幕打开但昏暗或仅保持CPU 开启;然后在您想让设备进入睡眠状态时释放它。这将对您的用户的电池寿命产生不利影响,但从它的声音来看,优先级是了解设备位置。 文档很好地描述了所涉及的内容,并且有一些教程可以帮助您入门。

于 2012-08-29T20:15:27.773 回答