私は3日前に検索しましたが、他の場所で解決策や類似の問題/質問が見つかりませんでした。ここで契約です: - >は2時間で正しいAlarmManagerがPendingIntentをトリガーするのが遅すぎる
トリガーに動作します - > 1で1時23
トリガーで一日のゴーズ - 1時間で
トリガー>でのゴーズ〜11:00
なぜAlarmManagerは予測できないのですか?または私は何を間違っているのですか?それが正しく動作するように別の方法がありますか?
これは私がAlarmManager(ストリップダウン)で私のPendingIntentを登録する方法です:
AlarmManager alarmManager = (AlarmManager)parent.getSystemService(ALARM_SERVICE);
Intent myIntent = new Intent(parent, UpdateKlasRoostersService.class);
PendingIntent pendingIntent = PendingIntent.getService(parent, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
//Set startdate of PendingIntent so it triggers in 10 minutes
Calendar start = Calendar.getInstance();
start.setTimeInMillis(SystemClock.elapsedRealtime());
start.add(Calendar.MINUTE, 10);
//Set interval of PendingIntent so it triggers every day
Integer interval = 1*24*60*60*1000;
//Cancel any similar instances of this PendingIntent if already scheduled
alarmManager.cancel(pendingIntent);
//Schedule PendingIntent
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, start.getTimeInMillis(), interval, pendingIntent);
//Old way I used to schedule a PendingIntent, didn't seem to work either
//alarmManager.set(AlarmManager.RTC_WAKEUP, start.getTimeInMillis(), pendingIntent);
誰もが解決策を持っている場合、それは素晴らしいだろう。助けてくれてありがとう!
更新: 2時間前に2時間間隔でトリガするように機能しましたが、その後は1時間20分後にトリガされました。それは本当に変だ。私はログファイルを使ってトリガを追跡し、明日ここに投稿します。
更新: PendingIntentは3時間ごとに実行されるようにスケジュールされています。私は新しいものをスケジュールする前に、私が予定さPendingIntentのをキャンセル確信している、
[2012-5-3 2:15:42 519] Updating Klasroosters
[2012-5-3 4:15:15 562] Updating Klasroosters
[2012-5-3 5:15:42 749] Updating Klasroosters
[2012-5-3 8:15:42 754] Updating Klasroosters
[2012-5-3 11:15:42 522] Updating Klasroosters
をしかし:ログのセカンドラインからは、古いスケジュールさPendingIntentがまだ実行されているように思えます。また、すべてのPendingIntentは同じ方法で再作成されないので、まったく同じにする必要があります。そうでない場合、このスレッドの質問はもはや関連しません。
あなたの問題を再現することはできません。ちょうど2時間、1日も前進させるために「スタート」をどのように変更するのですか? – Sam
ログファイルを追加して、おそらく古いPendingIntentがまだ実行中であることがわかりました。 – Wezelkrozum
私も同じ問題を抱えていますが、実際の解決策はありますか? – david