2012-01-27 286 views
4

我正在开发一个android应用程序,我想减少功耗。我相信的方法是在用户活动停止某个阈值时间时将手机置于睡眠模式。我有三个关于这个问题。当手机进入睡眠状态时,Handler.sendMessageDelayed()是否工作?

  1. 如果我放开激活锁定,并没有其他应用程序后多少时间会在手机睡觉抱着激活锁定?

  2. 我有多个HandlerThreads运行在我使用sendMessageDelayed()函数的地方。即使手机进入睡眠模式后,这些信息是否会传送出去?

  3. 是否将手机置于飞行模式可以节省更多的电量,而不仅仅是让手机进入睡眠状态。如果是的话,那么为什么这是因为这两种模式唯一的区别就是蜂窝网络的使用。

回答

3

如果我放开激活锁定,并没有其他应用程序持有多少时间后 激活锁定将手机去睡觉?

确实没有明确的答案,但从个人经验来看,我认为它可能会在30秒到1分钟内发生。

我有多个HandlerThreads运行在我使用 sendMessageDelayed()函数。在手机进入睡眠模式后,这些消息是否会传送到即使是 ?

我真的不会指望它,因为我从来没有看到任何说它会唤醒设备发送消息。你可以随时测试它,但我不会相信它的工作原理,因为文档没有声明它会。

是否将手机设置为飞行模式更省电,而不是 只是把手机睡觉。如果是的话,那么为什么这两种模式的区别仅在于使用蜂窝网络。

如果您将其置于睡眠模式和飞行模式,那么与JUST睡眠模式相比,您将节省更多电量。

原因是,即使CPU处于睡眠状态,手机也必须与手机网络保持连接,以便知道您是否收到短信或打电话。要做到这一点,它必须使用电池持续保持天线开启。如果您将其设置为飞行模式,则会基本上关闭天线,然后手机将不会使用电池进行该功能。

+0

谢谢Jakar。你能否给我提供你回答问题2和问题3的参考资料? – crazyaboutliv 2012-01-27 13:06:58

+0

对于问题3,我没有使用参考。我只是在逻辑上看待它 - 如果手机必须保持其他电源,那么它必须使用更多的电池。对于问题2,没有关于睡眠模式的真实文档,但是我阅读了[本页](http://developer.android.com/reference/android/os/Handler.html),它没有提到唤醒设备。可靠地唤醒设备的唯一方法是为具有RTC_WAKEUP的“BroadcastReceiver”设置一个“Alarm”。 – Jakar 2012-01-27 20:32:38

+0

好的答案,它解释了为什么sendMessageDelayed()在屏蔽时不起作用。 – 2013-02-06 08:42:16

相关问题