2011-08-17 11 views
0

ここでは、AlarmMangerクラスを使用してアラームを設定しようとしています。それは私とうまくいっていますが、時間ピッカーから時または分の後にアラーム時刻を設定すると、アラームを保存すると即座に開始されます。アラーム。私は時間を設定するまで警報を出す必要があります。 以下は私のコードが動作していますが、私が保存すると即座にアラームが始まります。アラームマネージャーの時刻を設定します。Android - 即時に起動されたアラーム

タイムピッカーでのみ設定しています。

Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.YEAR,Calendar.MONTH,Calendar.DAY_OF_MONTH,mHour,mMinute); 
PendingIntent sender = PendingIntent.getBroadcast(AddAlarm.this, REQUEST_CODE, intent, 0); 
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); 
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender); 

私が働いていないコードアラームの下に取れば...

Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.HOUR, mHour); 
calendar.set(Calendar.MINUTE, mMinute); 
PendingIntent sender = PendingIntent.getBroadcast(AddAlarm.this, REQUEST_CODE, intent, 0); 
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); 
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender); 

私は事前にproperly.Thanksを動作するように変更する必要があり、私を助けて...

答えて

4

第二の符号べき通常は日付付きアラームで動作します。

覚えておいてください: HOURとMINUTEを現在の日に設定すると、HOUR = 1とMINUTE = 30は、01:30 AMのアラームを設定することを意味します。 終了している場合は、すぐにアラームが表示されることがあります。

今後1:30のアラームを作成したい場合は、calendar.add(..、..)メソッドを使用してください。

+0

ありがとうございました.. –

0

私はあなたがこの行で何をしようとしてわからない:

calendar.set(Calendar.YEAR,Calendar.MONTH,Calendar.DAY_OF_MONTH,mHour,mMinute); 

が、私はそれはあなたがやりたいことはありませんかなり確信しています。これにより、カレンダーは1年目の3月5日にあなたが選択した時間&分に設定されます。これをミリ秒に変換すると、ミリ秒で表すことができる最も早い日付の前にあるので、0が返されます。

ます。また、この行の異なるカレンダーAPI関連の問題を抱えている:

ここ
calendar.set(Calendar.HOUR, mHour); 

、あなたの問題はあなたのmHourが考えられるのに対し、Calendar.HOURフィールドは、12時間表記で時間を指していることです24時間表記を使用してください(それ以外の場合は、1日分の時間を保持するためにAM/PMフィールドも必要です)。代わりにCalendar.HOUR_OF_DAYが必要です。

関連する問題