gpt4 book ai didi

android - 设备处于 sleep 状态时定期通知是否有效

转载 作者:行者123 更新时间:2023-11-29 21:08:50 25 4
gpt4 key购买 nike

我正在使用 Android API,尤其是 Alarms、IntentService 和通知。我正在使用 AlarmManager 安排一个周期性的 IntentService,它可能会或可能不会触发通知。

我的问题是当设备处于 sleep 模式时会发生什么?

  1. 警报不会触发,因此 IntentService 根本不会运行。我不确定是否会出现这种情况。如果我将其设为 WakefulIntentService 会有什么不同吗?我相信需要唤醒锁来确保服务在 BroadCastReciever 返回后继续运行。但是,在这种情况下没有广播接收器。

  2. Alarm 和 IntentService 将运行,但任何通知都不会产生任何影响,因为设备正在休眠。在这种情况下,我是否必须明确地从 PowerManager 获取唤醒锁才能触发通知?

最佳答案

What happens when the device is in sleep mode?

这取决于您的警报类型和您的 PendingIntent 要调用的组件。

如果您的闹钟类型以 _WAKEUP 结尾,并且您正在使用广播 PendingIntent,设备将通过调用 onReceive( )BroadcastReceiver。一旦 onReceive() 返回,设备就可以再次进入休眠状态。这就是创建 WakefulIntentServiceWakefulBroadcastRecevier 的原因——为如何将控制权传递给 IntentService 并在服务完成其工作。

如果您的闹钟类型以 _WAKEUP 结尾并且您没有使用广播 PendingIntent,俗话说,您的里程可能会有所不同。在设备重新进入休眠状态之前,您可能无法控制。这不是推荐的模式。

如果您的闹钟类型不以_WAKEUP结尾,设备将不会因为您的闹钟而被唤醒。

关于 Notification,考虑到 API 的性质,我们希望操作系统有责任让设备保持足够长的唤醒时间以便播放铃声或振动模式,因为我们不知道 Notification 出现的确切时间,也不知道铃声是否会播放(例如,设备处于静音模式)。

关于android - 设备处于 sleep 状态时定期通知是否有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23608137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com