我必须使用AlarmManager
设置警报,在此之前,我需要从给定时间中减去10分钟。但是输出是错误的。它显示了输出中超过10分钟的差异。我当前的代码看起来像这个
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Log.e("here value of time",time);
Calendar calendar1 = Calendar.getInstance();
calendar1.setTimeZone(TimeZone.getDefault());
SimpleDateFormat dateFormatter = new SimpleDateFormat("MM-dd-yyyy h:mm a");
try {
calendar1.setTime(dateFormatter.parse(time));
calendar1.set(calendar1.MINUTE,-10);
Log.e("alarm Set for", String.valueOf(calendar1.getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
manager.set(AlarmManager.RTC_WAKEUP, calendar1.getTimeInMillis(), pendingIntent);
我得到的日志像这个
此处时间值:11-19-2019上午1:30
警报设置为:11月19日星期二00:50:00 GMT+05:30 2019
更改此行:
日历1.set(日历1.MINUTE,-10(;
到
calendar1.add(Calendar.MINUTE,-10(;
您没有将-10
添加到当前分钟中,而是将分钟设置为-10
值,从而回滚时间!更改
calendar1.set(calendar1.MINUTE,-10);
至
calendar1.set(Calendar.MINUTE, calendar1.get(Calendar.MINUTE) - 10);