我的应用程序将在MainActivity的onCreate中调用startForegroundService(intent).我在服务的onCreate和startCommand中放入了startForeground(ON_SERVICE_CONNECTION_NID,notification).

但我偶尔也会收到这个错误.

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或startCommand?

如果是这样,我们应该如何调用startForegroundService而没有错误?

更新2017-12-09

它的不同之处在于你可以在这个问题的第一行看到的.我已将startForegroundService和startForeground放在正确的位置,但它仍然随机显示此错误.

Stopping the service before this happens will cause a crash.

这是关于服务生命周期的另一个问题.

服务关闭后,可能会错误地触发断言.

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐