我知道要作为前台服务运行,您需要显示通知。我的应用程序将服务作为前台服务运行,并显示通知。
但是,如果用户进入设置 - >应用 - >我的应用 - >并取消选中“显示通知”,服务是否会继续作为前台服务运行?
我认为是的,它将继续作为前台服务运行。
但是,我最近注意到我的服务被系统杀死了,并在logcat中看到了这个:
杀戮2647:com.myapp.myapp:服务/ u0a122(adj 15):杀死背景
该服务已被终止,并且没有重新启动。这是在Android 4.4.2上。最糟糕的是,没有调用onDestroy,所以我甚至无法释放一些唤醒锁。
答案 0 :(得分:0)
运行adb shell dumpsys activity services
并检查服务的isForeground
标记的值。
* ServiceRecord{e66dea9 u0 com.example.foregroundservice/.ForegroundService}
intent={cmp=com.example.foregroundservice/.ForegroundService}
packageName=com.example.foregroundservice
processName=com.example.foregroundservice:backgroundproc
baseDir=/data/app/com.example.foregroundservice-2/base.apk
dataDir=/data/user/0/com.example.foregroundservice
app=ProcessRecord{254dd51 14363:com.example.foregroundservice:backgroundproc/u0a65}
isForeground=true foregroundId=101 foregroundNoti=Notification(pri=0 contentView=null vibrate=null sound=null tick defaults=0x0 flags=0x40 color=0x00000000 vis=PRIVATE)
createTime=-55s70ms startingBgTimeout=--
lastActivity=-55s70ms restartTime=-55s70ms createdFromFg=true
startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=1