11
私は、アラームを2回起動するのを避けるために、トラフのフープを跳ねています(まあ、複雑ではありません)。基本的なコードは次のようになります:私は実際には毎回私のアプリが起動し、このコードを実行するかどうアラームを2回起動するとどうなりますか?
AlarmManager mgr=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent i=new Intent(this, MyService.class);
PendingIntent pi=PendingIntent.getService(this, 0, i, 0);
mgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), AlarmManager.INTERVAL_FIFTEEN_MINUTES, pi);
は、それは問題でしょうか?私は、これを過大実験として約10回呼び出すと何の悪影響も見ませんが、これが偶然であろうと予想される行動であるかについては何の参考も見つけることができません。
特に期待されない場合は、「間違っている」と感じます。後でAlarmManager
の動作が変更されると、問題が発生する可能性があります。
うーん、ありがとう!その質問から、「Pendingintent」が本当に同じであることが分かります(ドキュメントが言うように)。しかし、同じ 'PendingIntent'を使って' setInexactRepeating'を2回呼び出しても、繰り返さないでしょうか? – Nanne
私は参照を見つけることができませんが、少なくとも同じ「PendingIntent」のアラームを開始しても、それ以上トリガーをかけることはありません。私は私がもしそれがすでに設定されているかどうかを調べることにします。そう簡単に。ありがとう – Nanne
'setInexactRepeating'を複数回呼び出すと、アラームタイマーがリセットされる可能性はありますか?インターバルが15分7分経過した場合と同様に、2回目のコールでインターバル時間が0にリセットされますか? – aandis