【问题标题】:How to create PhoneStateListener that works in both Doze Mode and Power Saving Mode?如何创建可在打盹模式和省电模式下工作的 PhoneStateListener?
【发布时间】:2019-05-15 13:23:49
【问题描述】:

当设备进入打盹模式或省电模式时,我的 PhoneStateListener 停止工作。我还需要在设备重启时注册 PhoneStateListener。我不想使用 BroadcastReceiver 因为不推荐了,见https://developer.android.com/about/versions/oreo/background#broadcasts

【问题讨论】:

    标签: java android phone-state-listener android-doze


    【解决方案1】:

    我认为目前不推荐使用 BroadcastReceiver 是正确的定义,它只是有更多 limitations 例如在清单中为隐式广播注册广播接收器并根据文档:

    • 应用可以继续在其清单中注册显式广播
    • 应用可以在运行时使用Context.registerReceiver() 为任何广播(无论是隐式还是显式)注册接收器。

    打盹模式很少有restrictions,但它提供了一种解决方案,可以在打盹模式和省电模式下使用AlarmManager 发出警报:

    如果您需要设置在打瞌睡时触发的警报,请使用setAndAllowWhileIdle()setExactAndAllowWhileIdle()

    您应该了解setAndAllowWhileIdlesetExactAndAllowWhileIdle 并决定哪一个与您相关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-25
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多