2010-11-18 7 views
0

私はアラームマネージャをスケジュールして、1時間に1時間ごとにインテントを起動しようとしています。 これは私が行うことであり、正しく動作しません。AlarmManagerスケジューリング

コード:

new code after edit: 


      Calendar cal = Calendar.getInstance(); 
    cal.set(Calendar.HOUR_OF_DAY , 22); //22:00 of every evening 
    cal.set(Calendar.MINUTE , 0); //initiate minute time 
    cal.set(Calendar.SECOND , 0); 
    cal.add(Calendar.MINUTE, randomMinutes); //adding mintues so we get random time btw 22:00-07:00 
    cal.add(Calendar.DAY_OF_YEAR, 1); //switching to the next day. 



    am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 
      AlarmManager.INTERVAL_DAY, pi); 

randomMinutesis 0

600のおかげからある数、

線。

答えて

1

3番目のパラメータは期間とし、SystemClock.elapsedRealtime()があるため、アラームは電話が開始されてからランダムな数ミリ秒ごとにオフになります。

60分を希望する場合は、3番目のパラメータに3600000を使用します。

+0

Ive done編集、必要に応じて私を修正してください、ありがとう。 – rayman

+0

@rayman:それは確かに妥当と思われます。 – CommonsWare

+0

@CommonsWare私にも同様の質問があります。私は現在、1日に1回実行されているアプリケーションで、指定されたサーバーをチェックし準備ができているというアラームを表示しています。 しかし、アプリケーションがアラームのインスタンスを作成した時点で1日に1回のみ実行されます。つまり、アプリケーションが最初の午後3時までオープンしていれば、アプリケーションは毎日午後3時に「アラーム」します。 私が欲しいのは、アプリケーションが初めて実行されたときには、アラームは午前10時などに毎回実行されるということです。 どうすればいいですか? –