Android 下一次报警的时间(秒或毫秒)

Android 下一次报警的时间(秒或毫秒),android,alarmmanager,alarm,android-alarms,Android,Alarmmanager,Alarm,Android Alarms,有了这段代码,我可以使用一些字符串,比如“Wed 10:10” 但我想在下一次报警前设置秒数。可能吗? 另外,如果我能够读取描述字段的值以及启用此警报的日期,那对我来说也很好。您需要按照以下方式执行此操作 private void updateAlarmDate(String nextAlarm) { if (nextAlarm.length()==0 || nextAlarm == "") { return; } else { D

有了这段代码,我可以使用一些字符串,比如“Wed 10:10”

但我想在下一次报警前设置秒数。可能吗?
另外,如果我能够读取描述字段的值以及启用此警报的日期,那对我来说也很好。

您需要按照以下方式执行此操作

private void updateAlarmDate(String nextAlarm) {
    if (nextAlarm.length()==0 || nextAlarm == "") {
        return;
    }
    else
    {
        DateFormat sdf = new SimpleDateFormat("EEE hh:mm aa");
        Date alarmDate = null;
        try {
            alarmDate = sdf.parse(nextAlarm);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        int alarmDay = alarmDate.getDay();
        Calendar now = Calendar.getInstance();
        Date currentDate = now.getTime();
        int todayDay = currentDate.getDay();
        int daysDiff = 0;
        if (todayDay > alarmDay) {
            daysDiff = ((7 + (alarmDay - todayDay)) % 7) + 1;
        } else {
            daysDiff = ((7 + (alarmDay - todayDay)) % 7);
        }
        now.add(Calendar.DATE, daysDiff);
        AlarmFulldate = now.getTime();
        AlarmFulldate.setHours(alarmDate.getHours());
        AlarmFulldate.setMinutes(alarmDate.getMinutes());
        AlarmFulldate.setSeconds(0);
    }
}    
long millis=AlarmFulldate.getTime()-新日期().getTime(); 变量毫秒将有毫秒

使用以下代码从毫秒中获取天、小时和分钟

days = (int) (millis / (1000 * 60 * 60 * 24));
hours = (int) ((millis - (1000 * 60 * 60 * 24 * days)) / (1000 * 60 * 60));
min = (int) (millis - (1000 * 60 * 60 * 24 * days) - (1000 * 60 * 60 * hours))/(1000 * 60);

希望这能帮助您

AlarmFulldate只需替换为“日期”
days = (int) (millis / (1000 * 60 * 60 * 24));
hours = (int) ((millis - (1000 * 60 * 60 * 24 * days)) / (1000 * 60 * 60));
min = (int) (millis - (1000 * 60 * 60 * 24 * days) - (1000 * 60 * 60 * hours))/(1000 * 60);