我有一个使用闹钟服务的应用程序。使用我正在设置的闹钟服务
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
new Intent("com.mindedges.pkg.intent.action.NEW_HOUR"),
PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, AlarmSheduleHelper
.getImmediateNextHour().getTimeInMillis(),
AlarmManager.INTERVAL_HOUR, pendingIntent);
然后有一个接收器,然后播放一些声音。
Evertthing适用于我的手机和大多数用户,但有些客户抱怨。 “大多数时候应用程序都没有显示闹钟,而且只有在我按下电源按钮解锁手机时才会显示几分钟”
请注意,此客户已启用节电功能,并且还已将应用程序包含在待机模式下处于活动状态
可能的原因是什么?报警服务在节电模式下是否起作用?
相关文章:Android AlarmManager.set(...): notification never received when battery low
答案 0 :(得分:0)
我已经凭经验发现重复警报的时间非常难以预测。例如,当我要求35分钟的时间段时,我会在大约35分钟的时间间隔内发出一些警报,相隔几个小时,有些警报在几分钟之内。
我发现只要求一次性警报就更容易预测,然后每次警报触发时重新提交一个新警报。
这种方法显然已成为谷歌的推荐。 AlarmManager page现在在SetRepeating的描述中添加了以下内容:“注意:从API 19开始,所有重复警报都不准确。如果您的应用程序需要精确的交付时间,那么它必须使用一次性精确警报,重新安排每个如上所述的时间.targetSdkVersion早于API 19的旧应用程序将继续将所有警报(包括重复警报)视为完全警告。“
答案 1 :(得分:0)
我在一个严重依赖提醒的应用程序上工作,通知用户何时服药。启用了PowerSave模式的三星设备将始终不在正确的时间触发警报。我已经看到它提前一小时发射的情况。因此,例如,希望在上午8:00提醒的用户在上午7:00接受药物接收通知。
注意:设置它并不重要。像往常一样,三星做他们自己的事情,所有的逻辑都消失了。
基本上,确保设置的触发时间足够接近当前时间:
=AND($C2=$D2,$A1=C$2,$C2<>$D2)