0

指定した時刻ではなく、すぐにアラームが鳴るのはなぜですか?

Intent myIntent = new Intent(Notepad.this, MyAlarmService.class);
PendingIntent pendingIntent = PendingIntent.getService(Notepad.this, 0, myIntent, 0);

AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
         Calendar calendar = Calendar.getInstance();
         calendar.setTimeInMillis(System.currentTimeMillis());
         calendar.set(Calendar.YEAR, 2012);
         calendar.set(Calendar.MONTH, 4);
         calendar.set(Calendar.DAY_OF_MONTH, 5);
         calendar.set(Calendar.HOUR_OF_DAY, 10);
         calendar.set(Calendar.MINUTE, 30);
         calendar.set(Calendar.SECOND, 4);
     alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);

のみを使用するcalendar.add(Calendar.SECOND, 5);と、5 秒後に作動します。

ニコラスの答えに基づくソリューション

        Date dat  = new Date();//initializes to now
        Calendar cal_alarm = Calendar.getInstance();
        Calendar cal_now = Calendar.getInstance();
        cal_now.setTime(dat);
        cal_alarm.setTime(dat);
        cal_alarm.set(Calendar.HOUR_OF_DAY,Integer.valueOf(h));
        cal_alarm.set(Calendar.MINUTE, Integer.valueOf(m));
        cal_alarm.set(Calendar.SECOND,0);

        if(cal_alarm.before(cal_now)){
            cal_alarm.add(Calendar.DATE,1);
        }
4

1 に答える 1

1

私には、カレンダーの時刻と曜日をアラーム時刻に設定しているようです。2 つの異なるカレンダーを設定して、1 つを現在の時刻用に、もう 1 つをアラーム時刻用に設定することもできます。それは理にかなっていますか?

于 2012-05-05T10:55:11.397 に答える