Android 手机进入睡眠状态时Handler.sendMessageDelayed()是否工作?

Android 手机进入睡眠状态时Handler.sendMessageDelayed()是否工作?,android,handlers,airplane,Android,Handlers,Airplane,我正在开发一个android应用程序,我想降低功耗。我相信的方法是,每当用户活动停止一段特定的阈值时间时,将手机置于睡眠模式。关于这一点,我有三个问题 如果我释放wakeLock,并且在手机进入睡眠状态多长时间后,没有其他应用程序持有wakeLock 我在使用sendMessageDelayed()函数的地方运行了多个HandlerThreads。这些信息会在手机进入睡眠模式后发送吗 将手机置于飞机模式是否比将手机置于睡眠模式更省电。如果是,那为什么是因为这两种模式的唯一区别是使用蜂窝网络 如果

我正在开发一个android应用程序,我想降低功耗。我相信的方法是,每当用户活动停止一段特定的阈值时间时,将手机置于睡眠模式。关于这一点,我有三个问题

  • 如果我释放wakeLock,并且在手机进入睡眠状态多长时间后,没有其他应用程序持有wakeLock

  • 我在使用sendMessageDelayed()函数的地方运行了多个HandlerThreads。这些信息会在手机进入睡眠模式后发送吗

  • 将手机置于飞机模式是否比将手机置于睡眠模式更省电。如果是,那为什么是因为这两种模式的唯一区别是使用蜂窝网络

  • 如果我释放wakeLock而没有其他应用程序持有 wakeLock手机会在多长时间后进入睡眠状态

    确实没有确定的答案,但根据个人经验,我认为这很可能会在30秒到1分钟内发生

    我有多个HandlerThreads在我使用的地方运行 sendMessageDelayed()函数。这些信息会被发送吗 在手机进入睡眠模式后

    我真的不会指望它,因为我从来没有见过任何东西说它会唤醒设备发送所说的信息。您可以随时对其进行测试,但我不相信它能工作,因为文档并没有声称它能工作

    将手机置于飞机模式会比普通模式节省更多电量吗 只是把电话挂了。如果是,那为什么是因为 这两种模式的唯一区别是使用蜂窝网络

    如果你把它置于睡眠模式和飞行模式,那么你将比睡眠模式节省更多的电池


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

    谢谢Jakar。你能提供你回答问题2和问题3时使用的参考资料吗?对于问题3,我没有使用参考资料。我只是顺理成章地看了看——如果手机必须保持其他电源,那么它就必须使用更多的电池。对于问题2,没有关于睡眠模式的文档,但我仔细阅读了一遍,没有提到唤醒设备。唯一可靠地唤醒设备的是为带有RTC_WAKEUP的
    广播接收器设置的
    警报。回答不错,它解释了为什么屏幕关闭时sendMessageDelayed()不工作。