質問: (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); manager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime(), 3 * 1000, pendingIntent); } } ``` ### 調べたこと Service内の処理は平均して20ミリ秒ほどでした。
回答: > > Android5.1ではこのタイムラグが起きなかったので > > 7.1の仕様なのかなと思い調べてみましたが分かりません。 > > > API 19なのでかなり前からsetRepeating()のタイミングは緩くなっています。 リンク内容 理由はバッテリー消費を抑えたいためです setの場合はsetExact()あるいはsetWindow()を使えるので精度を良くできますが setRepeating()にはありません API 25 であれば、ServiceでsetExact()を繰り返させることができます ただしAndroid 8.0からは多分できないでしょう Backgroundでの挙動が制限されるので リンク内容 回避策はJobSchejulerかな