android - 手机进入休眠状态时 Handler.sendMessage Delayed() 是否有效?

标签 android handlers airplane-mode

我正在开发一个 android 应用程序,我想降低功耗。我认为的方法是只要用户 Activity 停止一定的阈值时间段,就将手机置于 sleep 模式。对此我有三个问题。

  1. 如果我释放 wakeLock 并且没有其他应用程序持有 wakeLock,那么手机会在多长时间后进入休眠状态?

  2. 我在使用 sendMessageDelayed() 函数的地方运行了多个 HandlerThread。即使在手机进入休眠模式后,这些消息还会发送吗?

  3. 将手机设为飞行模式比让手机进入休眠模式更省电吗?如果是,那么为什么会这样,因为这两种模式的唯一区别是使用蜂窝网络。

最佳答案

If I release the wakeLock and no other application is holding the wakeLock after how much time would the phone go to sleep?

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

I have multiple HandlerThreads running where I use sendMessageDelayed() function. Would these messages get delivered even after the phone goes to sleep mode?

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

Does putting the phone into aeroplane mode save more power rather than just putting the phone to sleep. if yes, then why is it because the only difference in those two modes is the use of cellular network.

如果您将其设置为 sleep 模式和飞行模式,那么您将比仅使用 sleep 模式节省更多电量。

原因是即使 CPU 几乎处于 sleep 状态,手机也必须与蜂窝网络保持持续连接,以便知道您是否收到短信或电话。为此,它必须使用电池来持续保持天线开启。如果您将它设置为飞行模式,它基本上会关闭天线,然后手机就不会为该功能使用电池。

关于android - 手机进入休眠状态时 Handler.sendMessage Delayed() 是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9029709/

相关文章:

asp.net - web.config中的处理程序上的path属性的含义

wpf - 如何在 WPF 中制作 Windows 资源管理器文件预览屏幕?

Android:以编程方式重置电话 radio 网络信号

android - 使用 HTTP 请求处理飞行模式

android - Cordova 在新应用程序窗口 android 中打开指向应用程序的链接

android - FLAG_KEEP_SCREEN_ON 仍然导致屏幕变暗

java - 安卓编码 "Simon";很难暂停代码

ios - 以编程方式在 iOS 中切换 AirPlane 模式

java - 启动画面 - 触摸即可跳过

安卓工作室 : How to run a single test on x86