2010-08-26 66 views
3

我有一个应用程序需要向服务器发送定期心跳,但是当手机进入待机模式时,背景心跳线程会死亡。无论如何,将手机从待机状态唤醒,发送心跳,然后以编程方式返回睡眠状态?如果可能,我想避免使用PARTIAL_WAKE_LOCK。Android - 周期性地从待机模式中唤醒?

感谢

+0

为什么在手机睡着的时候需要发一个心跳?这听起来像一个可怕的电池消耗。 – 2010-08-26 20:19:02

+0

这听起来像你需要建立一个服务,而不是使用线程。 – Hans 2010-08-26 22:56:38

回答

4

反正有从待机状态唤醒的电话,发送心跳,然后回去睡觉编程 ?

使用AlarmManager_WAKEUP式报警。这里是a sample project说明它的使用(以及你想要的WakefulIntentService,以确保设备在网络I/O期间不会重新入睡)。

如果可能,我想避免使用PARTIAL_WAKE_LOCK。

如果没有WakeLock,您将无法执行网络I/O,因为设备将在I/O期间重新入睡。使用AlarmManager,您可以安排仅在实际心跳工作期间持有WakeLock,而不是100%的时间。