我的应用程序将调用startForegroundService(intent)
. 我把the和of 都放进去了。但我仍然偶尔会收到此错误。onCreate
MainActivity
startForeground(ON_SERVICE_CONNECTION_NID, notification)
onCreate
startCommand
Service
Exception android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground()
android.app.ActivityThread$H.handleMessage (ActivityThread.java:1775)
android.os.Handler.dispatchMessage (Handler.java:105)
android.os.Looper.loop (Looper.java:164)
android.app.ActivityThread.main (ActivityThread.java:6541)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:240)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:767)
这怎么可能发生?是否有可能在 5 秒内没有调用onCreate
or ?startCommand
如果是这样,我们应该如何正确调用startForegroundService
?
2017-12-09 更新
不知道为什么大家都说和这个问题一样:Context.startForegroundService() 没有然后调用Service.startForeground() 你甚至可以在那边找到我的评论。
它不同的原因是你可以在这个问题的第一行看到。我已将startForegroundService
andstartForeground
放在正确的位置,但它仍然随机显示此错误。
这是谷歌问题跟踪器:https ://issuetracker.google.com/issues/67920140
在此之前停止服务将导致崩溃。
这是服务生命周期的另一个问题。服务关闭后,断言可能会被错误触发。