12
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Service が Foreground で動いているか確認する

Posted at

Android で「死ににくいサービス」を作るには [Service.startForegound](http://developer.android.com/reference/android/app/Service.html#startForeground(int, android.app.Notification) を呼び出す必要がありますが、動いてるサービスがちゃんと「Foregound になってるか?」は以下のようにして確認できます。(Notification 表示が強制されるから通知バー見ればいいじゃん、と言われればそうなんですけど、ちゃんとしたエビデンスっぽいのが欲しくて)

手順

adb shell dumpsys activity s <サービス名>

<サービス名> はサービスの完全名称を入れます。AndroidManifest.xml の <service android:name= で定義したやつ。

実行すると以下のように出力されます。

ACTIVITY MANAGER SERVICES (dumpsys activity services)
User 0 active services:

  • ServiceRecord{41b2dd18 u0 com.amay077.android.gpsfaker/.service.GpsSignalService}
    intent={cmp=com.amay077.android.gpsfaker/.service.GpsSignalService}
    packageName=com.amay077.android.gpsfaker
    processName=com.amay077.android.gpsfaker
    baseDir=/data/app/com.amay077.android.gpsfaker-1.apk
    dataDir=/data/data/com.amay077.android.gpsfaker
    app=ProcessRecord{416e19e8 3209:com.amay077.android.gpsfaker/u0a10072}
    isForeground=true foregroundId=2130968576 foregroundNoti=Notification(pri=0 contentView=com.amay077.android.
    (以下省略)

isForegound=true と表示されているので、確かに「このサービスはフォアグラウンドだ」と分かります。サービス側で startForeground を呼び出さなかった場合は、この項目は表れません。

dumpsys 今までコマンドめんどいと思ってあまり使ってませんでしたすいませんでした(汗

参考

大変参考になりました。

12
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?