获取唤醒锁,释放唤醒锁,然后在手机睡眠时再次获取唤醒锁



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

所以我有一个Android应用程序,有一个Activity和一个服务。"活动"与服务无关。服务必须每分钟向远程服务器发送一些消息。据我所知,我需要使用WakeLock来保持CPU运行,同时允许屏幕关闭(这样我就可以解决屏幕关闭时服务停止的问题)。到目前为止还不错。

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

向致以最良好的问候

响应很简单:不。在这种情况下,你可以设置一个PendingIntent,并使用Android警报管理器每分钟被唤醒一次。

警报管理器是一种方法,但您还需要从警报接收器委托WakefulIntentService来完成工作(因为接收器将在5秒后ANR)。请参阅PowerManager。PARTIAL_WAKE_LOCK android链接。

最新更新