2016-08-20 29 views
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秒後に通知することです。

ブロードキャストレシーバでは、通知を作成するだけです。 私は助けていただきありがとう、ありがとうございます。

答えて

2

は私が(TimePicked後)私はAlarmClockをしたときのようなものをやっていた:

String[] arrTime = time.split(":"); 
int hour = Integer.parseInt(arrTime[0]); 
    int minute = Integer.parseInt(arrTime[1]); 
    GregorianCalendar calendar = (GregorianCalendar) GregorianCalendar.getInstance(); 
    calendar.set(GregorianCalendar.DATE, calendar.get(GregorianCalendar.DATE)); 
    calendar.set(GregorianCalendar.HOUR_OF_DAY, hour); 
    calendar.set(GregorianCalendar.MINUTE, minute); 
    calendar.set(Calendar.SECOND, 0); 
    calendar.set(Calendar.MILLISECOND, 0); 

    Intent intent = new Intent(this, AlarmReceiver.class); 
    intent.putExtra("message", message); 
    PendingIntent pIntent = PendingIntent.getBroadcast(this, requestCode, intent, 0); 
    alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pIntent); 
+0

だから、あなただけのカレンダーとalarmManagerにそれを渡すために新しい時間を設定しますか? –

+0

はい、ちょうど拾った時間がアラームマネージャ –

+0

に設定されました。私はあなたが2回の間に違いを渡す必要があると思っていました。ありがとうございました。 –

関連する問題