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(diff変数)に正確な違いを得ています。しかし、問題は、アラームが設定され、何の違いが設定されても、5秒後に通知することです。
ブロードキャストレシーバでは、通知を作成するだけです。 私は助けていただきありがとう、ありがとうございます。
だから、あなただけのカレンダーとalarmManagerにそれを渡すために新しい時間を設定しますか? –
はい、ちょうど拾った時間がアラームマネージャ –
に設定されました。私はあなたが2回の間に違いを渡す必要があると思っていました。ありがとうございました。 –