android8で正しく動作するタイマー系アプリを作るにはどうすればいいんだろう?

 

アプリがフォアグランドになっている場合とバックグランドになっている場合は問題ない。setAlarmClockを使えばいいだけ。
問題は画面オフ(電源オフでない)にしてるとき。setAlarmClockで時間になったらTTSで知らせるようにしたいのに画面オフ後3分以上経過すると遅れたり発話しなかったりする。一分以内なら想定通りの動作をしてくれる。だから一分ごとにアラームを発火、再設定して指定時刻になったら発話するようにしてみたがうまくいかなかった。ためしに毎分アラームを受け取ったときにTTSに何か適当に喋らせるようにした。そしたら指定時刻にちゃんと時刻を喋るようになった。しかし消費電力が過剰と言われてしまう。それから自分が所有してるp10lite、kindle fire hdx以外でも正常に動作するかわからない。

 

その後半日ほど放置してみたら喋らなくなった。