公共无效alarmUpdateForEveryDay(上下文上下文){ AlarmManager AlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, NewDayReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 50, intent, PendingIntent.FLAG_IMMUTABLE);
Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
if (System.currentTimeMillis() > c.getTimeInMillis()) {
c.add(Calendar.DAY_OF_MONTH, 1); // Add 1 day
}
long midnight = c.getTimeInMillis();
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, midnight, AlarmManager.INTERVAL_DAY, pendingIntent);
Log.d("current_time", new Date(midnight).toString());
}
我测试调整系统时间
请查看文档说明
从 API 19 (Build.VERSION_CODES.KITKAT) 开始,警报传递不准确:操作系统将转移警报以最大程度地减少唤醒和电池使用。
您应该使用
setExact
并在您的应用程序中创建重复机制