我们正在为商业用户构建特定应用。应用程序记录GPS坐标并通过HTTP将其发布到服务。
在测试过程中,我们发现了一个问题,即平板电脑(在Android 3.3上)屏幕关闭时,应用程序无法与外部服务进行通信。片刻我在屏幕上切换,应用程序立即恢复,然后能够与外部服务进行通信。
我在智能手机(Android 2.2)上进行了测试,即使手机屏幕关闭也能正常运行。
我没有为我的应用程序使用任何类型的服务。我们开始着手开发智能手机,但随后也将其用于平板电脑。我们从未想过平板电脑的表现会有所不同。
该应用程序的核心概念是定期向网络服务发送GPS坐标。
我可以在平板电脑上做些什么,允许我的应用在后台运行,而屏幕关闭或平板电脑不是为此而构建的。
答案 0 :(得分:1)
根据上述评论中的讨论,您似乎需要从PowerManager获取部分唤醒锁定。如果没有部分唤醒锁定,设备的正常行为是在屏幕关闭时暂停CPU。
唤醒锁是一个棘手的API,但我们的想法是你在一个特定的级别获取一个锁,以防止设备进入睡眠状态,无论是通过保持屏幕打开,保持屏幕开启但是暗淡,或者只是保持CPU;然后在您想让设备进入睡眠状态时释放它。这将对用户的电池寿命产生不利影响,但通过它的声音,优先考虑的是了解设备的位置。 The Documentation可以很好地描述所涉及的内容,并且有一个few tutorials可以帮助您入门。