我正在开发一个闹钟应用程序。下面我有一个设置闹钟的功能。但我想知道如何找到AlarmManager的剩余时间来触发PendingIntent。
例如,它现在是上午10:00,并设置AlarmManager以触发PendingIntent 23:00,并且我们知道PendingIntent将在此处被调用13个小时。但是如何找出这个时间呢?
抱歉我的英语不好。我感谢你的关注
String schedule = "23:00"; //example
Calendar cal = Calendar.getInstance();
cal.set(cal.HOUR_OF_DAY, getTime(schedule));
cal.set(cal.MINUTE, getMinute(schedule));
cal.set(cal.SECOND, 0);
cal.set(cal.MILLISECOND, 0);
DateFormat dfH = new SimpleDateFormat("HH");
DateFormat dfM = new SimpleDateFormat("mm");
int currentTime = Integer.parseInt(dfH.format(new Date()));
int currentMinute = Integer.parseInt(dfM.format(new Date()));
Intent i = new Intent(context, RecebAlarm.class);
PendingIntent pi = PendingIntent.getBroadcast(context.getApplicationContext(), id, i, 0);
AlarmManager alarms = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
long totalTime = cal.getTimeInMillis();
if (currentTime > getTime(schedule) || (currentTime == getTime(schedule) && currentMinute >= getMinute(schedule))) {
alarms.set(AlarmManager.RTC_WAKEUP, totalTime + AlarmManager.INTERVAL_DAY, pi);
} else {
alarms.set(AlarmManager.RTC_WAKEUP, totalTime, pi);
}
答案 0 :(得分:0)
您可以计算闹钟时间(totalTime
)与当前时间之间的差异:
long timeDiffInMillis = totalTime - System.currentTimeMillis();
这将为您提供闹钟触发前的剩余时间(以毫秒为单位)。