2021/05/30

[android] バックグラウンドサービスの停止がよくわからん

長生きしてほしい、けれども寿命があることも分かっている。スマホのプロセス管理はそんな感じじゃなかろうか。
ちなみに小さい組み込み環境の場合は、全部動作したとしても動くだけのメモリを確保することを考えることが多いので、アプローチが違う。火災警報器とかで「いま煙検知しててRAMが足りないのでアラームが鳴動できません」とかあったらダメだしね。

それはともかく、前回のアプリを強制終了しないといけない場合の候補優先度表があるので、その候補から下げてもらうためには何かしないといけない。

Google Developers Japan: 複数の JobService を活用する
https://developers-jp.googleblog.com/2017/10/working-with-multiple-jobservices.html

基本的に、アプリがフォアグラウンドで実行されている場合を除き、アプリのバックグラウンド サービスはシステムによって数分以内に停止されます。

API26 からそうなったらしい。
試してみよう。前回のサンプルは Activityの onStop()で Sericeを止めていたので、タイミングを onDestroy() にずらそう。

2021-05-30 12:42:42.990 D/MainActivity: onCreate
2021-05-30 12:42:43.417 D/MyService: onCreate
2021-05-30 12:42:43.417 D/MyService: onBind
2021-05-30 12:42:43.770 D/MainActivity: onServiceConnected

(Home画面)

2021-05-30 12:44:30.272 D/MainActivity: onStop

として 1時間程度放置したのだが、特に変化がない。Home画面にするだけでは甘くて、別のアプリがフォアグラウンドで動いていないといかんのだろうかと思ったのだが、別アプリを起動して4時間くらい経ったが変わらず。何か別のルールもあるのだろうか。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。