1
我正在创建一个简单的时间选择器对话框,并且当用户设置时间时,我将该时间存储在日历实例中。时间选择器当前和时间选择器时间之间的区别Android闹钟
public void onTimeSet(TimePicker timePicker, int i, int i1)
{
tpCalendar = Calendar.getInstance();
tpCalendar.set(Calendar.HOUR_OF_DAY, i);
tpCalendar.set(Calendar.MINUTE, i1);
tpCalendar.set(Calendar.SECOND,0);
updateReminder();
}
而且在updateReminder计算差值()方法
private void updateReminder()
{
long currTime = System.currentTimeMillis();
long diff = tpCalendar.getTimeInMillis() - currTime;
long diffInSec = TimeUnit.MILLISECONDS.toSeconds(diff);
Intent reminderIntent = new Intent(this, ReminderReceiver.class);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, diff,
PendingIntent.getBroadcast(this, 1, reminderIntent,
PendingIntent.FLAG_UPDATE_CURRENT));
}
而上的差异bassed我设置报警。我在Millis中获得了正确的区别(差异变量)。但问题是,警报设置后,不管设置了什么区别,它会在5秒后通知。
在广播接收机中,我只是创建一个通知。 我会感谢任何帮助,谢谢。
所以,你只需设置新的时间日历并将它传递给alarmManager? –
是的,刚刚挑选的时间设置为报警管理器 –
好吧,我以为你需要通过两次差异。感谢它的工作。 –