RemoteServiceException然后Context.startForegroundService()没有调用Service.startForeground()

Hoa*_*uan 9 android

在此输入图像描述

我在Android 8.0和Android 7.x中都通过Fabric.io收到了此错误报告.

因为它不仅仅是失败的特定类,我不知道如何处理它们.

如果您有任何想法,请帮助我.

Hey*_*lex 6

在Android O中,我们有一个新的背景限制。当您尝试启动startService()时,将获得IlleagalStateException,因此现在您应该使用startForegroundService(),但是如果通过此新方法启动服务,则会在屏幕截图中看到类似的错误。为避免此异常,您需要在startForegroundService()之后有5秒钟的时间使startForeground()通知用户您正在后台工作。

因此,Android O中只有一种方法:

context.startForegroundService(intent)
Run Code Online (Sandbox Code Playgroud)

并在服务中onCreate()做这样的事情:

startForeground(1, new Notification());
Run Code Online (Sandbox Code Playgroud)

更新 据我所知,一些制造商已经在Android N上反向移植了这些新的背景限制,这就是为什么您可以在Android N中得到相同的异常的原因。

  • 我在“MainActivity”的“onCreate”中启动了一个服务。并在“Service”的“onCreate”和“onStartCommand”中调用“startForeground”。应用程序在调用 `onCreate` 时应始终处于前台状态。但我仍然收到此错误。 (2认同)
  • 新的Notification()引发Android版本27错误。现在,您需要提供有效的通知 (2认同)