Android 安卓通知&;Alarmmanager-计时不同
我通过BroadcastReceiver和AlarmManager发出了定时通知:Android 安卓通知&;Alarmmanager-计时不同,android,notifications,alarmmanager,timing,Android,Notifications,Alarmmanager,Timing,我通过BroadcastReceiver和AlarmManager发出了定时通知: static public void setReminderNotification(Context c){ AlarmManager alarmManager = (AlarmManager) c.getSystemService(Context.ALARM_SERVICE); Intent alarmIntent = new Intent(c, ReminderReceiver.class)
static public void setReminderNotification(Context c){
AlarmManager alarmManager = (AlarmManager) c.getSystemService(Context.ALARM_SERVICE);
Intent alarmIntent = new Intent(c, ReminderReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(c, 12460, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
iTime = 24000;
if (iTime > 0) {
alarmManager.cancel(pendingIntent);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + iTime, iTime, pendingIntent);
}else if(iTime == 0){
alarmManager.cancel(pendingIntent);
}
}
我意识到,闹钟并不是每24秒响一次。视情况而定。我在接收器上做了记录:(格式:H-m-s)
我想知道为什么通知有时更短/更长。
有什么办法解决这个问题吗?据我们所知,AlarmManager并不精确。
在纽约,你有
public void setExact (int type, long triggerAtMillis, PendingIntent operation)
注意:从API 19(KITKAT)开始,警报传递是不精确的:操作系统将切换警报,以尽量减少唤醒和电池使用。有新的API支持需要严格交付保证的应用程序;请参见设置窗口(int,long,long,pendingent)和设置精确窗口(int,long,pendingent)。targetSdkVersion早于API 19的应用程序将继续看到之前的行为,其中所有警报都会在请求时准确传递
请参见此处您能在启动报警服务的地方张贴代码吗
public void setExact (int type, long triggerAtMillis, PendingIntent operation)