マル開発日記

マルAndroidデベロッパ

Androidサービス

 みなさま如何お過ごしでしょうか。私は今日3連休?の代休をもらってちょっとしたコード書いてますw

 みなさまのお好きなバックグラウンドサービスはAndroid O (かつSDK26)でリストリクトされます。なのでサービスのフォアグラウンド化はいままで作ったサービスを生かしつつターゲットを26に上げる、ある一つの方法になってます。その辺がわかるよーなコードをGitHubに載せました。超簡単なサービスを扱っていますのでまったくの説明がないですが、コード(およびマニフェスト)より感じ取って頂けると幸いです。

 以上 よろしくお願いいたします。

github.com


。。いろいろ試して気づいたのですが、ひとつでもフォアグラウンドサービスが生きていれば他のバッググラウンドサービスは殺されないようです(Nexus5Xで試してます)。

 ということは、アクティビティ起動時にでもひとつダミーでスティッキーなフォアグラウンドサービスを立ち上げればその他のサービスは手を加えずそのままで良い??AlarmManagerからのサービス起動インテントもイリーガルステートエクセプション投げない?その辺の細かな説明はどっかでされてるんだろうか。。

10/22追記
どうやら、ダミーでフォアグラウンドサービスを起動しとけば、OreoでもAlarmManagerを今まで通りな感じで使えるよーです。JobSchedulerのほう推奨されてるけど。。検討中。

10/29追記
肉の日ですねー、GitHubのデモにJobSchedulerとJobDispatcherのデモを追加しました( ´∀` )b