読者です 読者をやめる 読者になる 読者になる

Foregroundで起動させているServiceを強制終了させると勝手に再起動してしまう

再起動自体を無効化させる方法が判らなくて困ってる感じ。

現象

startForeground()でForeground実行しているServiceを(DDMSなどを使って)強制終了させると、Android OSが勝手にServiceをForegroundで再起動してくれる。
Notificationも復活させてくれるので、結果的に意図してないNotificationが表示されてしまう。

とりあえずの対応策

暫定対応として、onCreate()内でstopForeground()している。一瞬Notificationが表示されてしまうが仕方ない。何か良い実装方法があれば教えてください。

ちなみにonStartCommand()でSTART_NOT_STICKYをreturnしても再起動は抑制できず。

そもそも、強制終了されること自体が異常な操作なので、これで割り切ってしまうのもアリだし、可能であれば強制終了される前の状態にリカバリーしてあげた方が良いのかもしれない。