1
Intent myIntent = new Intent(Alarm.this, Automaton.class);
                  myIntent.putExtra("methodName", "myMethod");
                  myIntent.putExtra("hour", tp.getCurrentHour().toString());
                  myIntent.putExtra("minute", tp.getCurrentMinute().toString());
                  hour = tp.getCurrentHour();
                  minute = tp.getCurrentMinute();
                  PendingIntent pendingIntent = PendingIntent.getActivity(Alarm.this, 0, myIntent,PendingIntent.FLAG_UPDATE_CURRENT);
                  AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
                       Calendar calendar = Calendar.getInstance();
                       calendar.set(calendar.HOUR_OF_DAY, hour);
                       calendar.set(calendar.MINUTE, minute);
                       calendar.set(calendar.SECOND, 0); 
                       alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 86400000, pendingIntent);

上記は私のコードです。これが私の問題です。指定した時間に実行したい別のアクティビティにメソッドがあります。ユーザーが 1 日の中でまだ過ぎていない時刻を選択した場合 (たとえば、アラームを午前 11 時に午前 10 時に設定したとします)。ただし、午前 10 時に午前 9 時にアラームを設定すると、保留中のインテントが即座に起動されます。どこが間違っているのかわかりません。どんな助けでも大歓迎です!

4

3 に答える 3

2

set timeが より小さいかどうかを確認する必要がある場合がありcurrent timeます。設定時刻が現在時刻よりも短い場合は、アラームを設定しないでください。時間が経ってしまったのに持っていてもダメだから。

于 2013-05-21T03:38:51.013 に答える