【问题标题】:Behavior of Screen-off of Android tablet vs Android SmartphoneAndroid 平板电脑与 Android 智能手机的屏幕关闭行为
【发布时间】:2012-08-30 06:01:15
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 您的平板电脑有 3G 连接吗?因为大多数设备在睡眠时会关闭 wifi 连接
  • @JRaymond:是的,它支持 3g,但我正在 WIFI 上进行测试。我还没有在数据计划上对此进行测试
  • @JRaymond:我刚刚在平板电脑上测试了 Wifi 睡眠策略。已选择的选项是:“从不(使用更多电池电量)”
  • 另外请注意,一些供应商会在设备处于低功耗状态时暂停许多传感器 - 我目前正在处理三星 Galaxy 10.1 在睡眠期间暂停其加速度计的问题,我可以想象一下同样适用于位置数据。另一方面,摩托罗拉 Xoom 让它们保持开启状态。一些供应商在电池寿命方面比其他供应商更积极
  • @Jaymond:问题不仅仅是在睡眠模式下从系统获取 GPS 坐标。我尝试在三星 Galaxy 平板电脑上使用简单的基于计时器的 Web 服务调用来测试我的应用程序(这次我只是向服务发送常量值)。当平板电脑处于睡眠模式时,即使这也不会被调用。另一方面,智能手机运行良好。可能我需要查看智能手机上是否有任何使用唤醒锁的应用程序

标签: android android-intent android-service


【解决方案1】:

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

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

【讨论】:

  • 谢谢 JRaymond,我明天会测试一下。
猜你喜欢
  • 2012-04-21
  • 1970-01-01
  • 2012-12-09
  • 1970-01-01
  • 2011-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-24
相关资源
最近更新 更多