【发布时间】:2017-05-20 00:17:59
【问题描述】:
我正在开发一个使用 AlarmManager 在后台生成一些服务的应用程序。时间对我们的应用程序非常重要,功能不能等待下一个维护窗口的出现。 要求用户将应用程序列入白名单不是问题,但不能解决暂停警报的问题。此外,电池消耗也不是什么大问题。
我想到的第一个可能的解决方案是生成一个始终运行的前台服务来处理服务的重新调度,而不是 AlarmManager,但这样做会改变我们应用程序的大部分基础结构,对我们来说是不可行的。
我刚刚实施的当前修复是发送高优先级推送通知,并在接收到消息时,采取完全唤醒锁定并打开屏幕以打破瞌睡模式。
我想知道是否有另一种打瞌睡模式的方法?也可以不使用唤醒锁吗?实施上述解决方案会产生一些可能的影响吗?
附:我正在使用 UrbanAirship 进行推送通知。
【问题讨论】:
-
不带唤醒锁也有可能吗?有什么可能?
-
在不打开屏幕的情况下接收高优先级推送通知是否可以打瞌睡?我正在考虑不在托盘中显示通知,但没有它,打开屏幕会更奇怪。
-
我试图用 FCM 消息解决类似的问题。但它会在很短的时间内唤醒我的应用程序。你有好的解决方案吗?
-
stackoverflow.com/questions/44079858/… 我在这里也有类似的问题,如果你能提出任何建议,那会很有帮助。谢谢。
标签: android android-6.0-marshmallow android-doze android-doze-and-standby