获取唤醒锁定,释放它并在手机休眠时再次获取它

时间:2014-04-24 13:50:35

标签: android android-service wakelock android-wake-lock

我认为这几乎是其他SO问题中已经描述过的标准案例,但我仍然需要澄清这个问题:

所以我有一个带有Actvity和Service的Android应用程序。除了服务之外,活动不是有意义的。服务必须每隔分钟向远程服务器发送一些消息。根据我的理解,我需要使用WakeLocks来保持CPU运行,同时允许屏幕关闭(以便我可以解决屏幕关闭时服务停止的问题)。到目前为止一切都很好。

我的问题是:我可以获取锁定,将消息发送到服务器,释放锁定并在一分钟后再次获取它,以便在这一分钟暂停期间CPU也处于休眠状态。最终目标是节省电池。我担心答案是"没有"因为一旦你让CPU进入睡眠状态,除非从较低级别(操作系统而非应用程序),否则无法将其唤醒。

祝你好运

2 个答案:

答案 0 :(得分:1)

回答很简单:没有。在这种情况下你可以做的是设置PendingIntent并使用Android Alarm Manager每分钟唤醒。

答案 1 :(得分:1)

警报管理器是可行的方法 - 但您还需要从警报接收器委派给WakefulIntentService来完成工作(因为接收器将在5秒后进行ANR)。有关链接,请参阅PowerManager.PARTIAL_WAKE_LOCK android