フォアグラウンドサービス動作時のタイマーの挙動について

194 views
Skip to first unread message

さまん

unread,
Aug 20, 2020, 1:44:09 AM8/20/20
to 日本Androidの会
お世話になっております。


◆困っている現象
 ForegroundService上で動作させているタイマーの周期が安定しません。

◆質問
 ① 画面スリープなどをしているときは、ForegroundService内の処理は遅くなってしまうのでしょうか。
 ② ForegroundService上である程度正確に1分周期の定期処理を行う方法は
   Timer以外にあるのでしょうか。

◆前提
 現在アプリでユーザーの情報を取得していろいろ行うアプリの作成をしています。

 具体的にはForegroundServiceでアプリを常駐させ、1分周期でログを取得するといったものです。

 ログの記録タイマーの周期は1分ですが、時折2分程度の周期になったり、5分周期になったりします。
 
 傾向としては画面スリープしていたり、夜間は上記現象が起こりやすいです。
 また、電源をつないでいるときは起きていなさそうです。

◆コード

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  mTimer!!.schedule(object : TimerTask() {
    override fun run() {
      mHandler.post {
        // ログ記録処理
      }
    }
  }, 60 * 1000 ,  60 * 1000 ) 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
◆環境
  開発言語 kotlin
 確認端末 Android Ver 9
  端末のバッテリーセーバオフ


何かわかる方回答をお願いいたします。

Hirokazu Fukami

unread,
Aug 20, 2020, 1:52:16 AM8/20/20
to android-g...@googlegroups.com
こんにちはfkmです。

Dozeモードに入っているものと思われます。
参考記事
https://qiita.com/nittannittan/items/6fed8add6da5ba2a10c2
> --
> このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
> このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/android-group-japan/59c11c1a-f21a-491c-a1ad-b78e308f4dd1n%40googlegroups.com にアクセスしてください。



--
-------------------------------------------------------------
深見 浩和(Hirokazu Fukami)

URI:http://www.fkmsoft.jp
email: f...@fkmsoft.jp

さまん

unread,
Aug 20, 2020, 2:11:02 AM8/20/20
to 日本Androidの会
fkm様
回答ありがとうございます!

やはりDozeモードなのですね

参考URLで行くとForegroundServiceでも影響受けるし、ホワイトリストに入れても関係なさそうですね。

このDozeモードの対策はやはりアプリレベルでは難しいのでしょうか。

2020年8月20日木曜日 14:52:16 UTC+9 fkm:
Reply all
Reply to author
Forward
0 new messages