我认为这几乎是其他SO问题中已经描述过的标准案例,但我仍然需要澄清这个问题:
所以我有一个带有Actvity和Service的Android应用程序。除了服务之外,活动不是有意义的。服务必须每隔分钟向远程服务器发送一些消息。根据我的理解,我需要使用WakeLocks来保持CPU运行,同时允许屏幕关闭(以便我可以解决屏幕关闭时服务停止的问题)。到目前为止一切都很好。
我的问题是:我可以获取锁定,将消息发送到服务器,释放锁定并在一分钟后再次获取它,以便在这一分钟暂停期间CPU也处于休眠状态。最终目标是节省电池。我担心答案是"没有"因为一旦你让CPU进入睡眠状态,除非从较低级别(操作系统而非应用程序),否则无法将其唤醒。
祝你好运
答案 0 :(得分:1)
回答很简单:没有。在这种情况下你可以做的是设置PendingIntent并使用Android Alarm Manager每分钟唤醒。
答案 1 :(得分:1)
警报管理器是可行的方法 - 但您还需要从警报接收器委派给WakefulIntentService来完成工作(因为接收器将在5秒后进行ANR)。有关链接,请参阅PowerManager.PARTIAL_WAKE_LOCK android。