【发布时间】:2018-10-05 22:42:08
【问题描述】:
我的应用目前仍以 SDK 25 为目标 我正在尝试替换我的后台服务以便能够以 SDK 26 为目标。 为了做到这一点,我现在用
启动我的 IntentServiceContextCompat.startForegroundService()
如果我正确理解了文档,我将有 5 秒的时间在服务上调用 startForeground()。
这样做时效果很好。 但有时我的服务没有任何工作要做,所以它立即退出(onHandleIntent() 没有做任何事情),但应用程序崩溃并出现以下错误
AndroidRuntime: FATAL EXCEPTION:
Process: com.myAPPPackage, PID: 3855
android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground()
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1768)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
在这种情况下,5 秒的延迟是怎么回事? 我可以看到服务 onDestroy() 方法在调用 ContextCompat.startForegroundService() 后的几毫秒内被调用
知道为什么应用会这样崩溃吗?
【问题讨论】:
标签: android android-intentservice foreground-service