我正在开发一个在SharedPrefernces中保存一些键值的应用程序。但是我想根据他们在03:00(凌晨03:00 AM)与INTERVAL_DAY的ID从共享首选项中删除一些密钥。通过阅读一些关于AlarmManager的块和stackoverflow答案,我现在正在尝试使用这段代码,
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 3);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Intent intent = new Intent(context, ClearSharedPreferences.class);
intent.putExtra("id", ID);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, ID, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
if (alarmManager != null) {
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
}一切都很好,但问题是,不是在晚上三点跑步。正如我设置的那样,AlarmManager在2-3分钟后开始运行。
因此,问题是如何设置AlarmManager在一天中的特定时间运行?
发布于 2018-03-05 15:00:26
按如下方式设置闹钟:
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 14);
calendar.set(Calendar.MINUTE, 30);
if (calendar.before(Calendar.getInstance())) {
calendar.add(Calendar.DATE, 1);
}
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, alarmIntent);https://stackoverflow.com/questions/49104941
复制相似问题