首先,我看了这些;
- Context.startForegroundService() 然后没有调用 Service.startForeground()
- Context.startForegroundService() 然后没有调用 Service.startForeground
- 仅限 Android 9 (Pie):Context.startForegroundService() 随后未调用 Service.startForeground() - 在 Oreo 上运行良好
- RemoteServiceException Context.startForegroundService() 然后没有调用 Service.startForeground()
- https://issuetracker.google.com/issues/76112072
我有一个近一百万人使用的流媒体应用程序。我正在为播放器使用前台服务。我还没有实施 MediaSession
。我有 99.95% 的无崩溃会话。所以这个应用程序适用于所有版本,但我开始使用 android 9 获取崩溃报告 (ANR)。此崩溃仅发生 Samsung
手机,尤其是 s9, s9+, s10, s10+, note9
型号。
我试过这些,
- 调用
startForeground()
方法onCreate()
- 调用
Service.startForeground()
之前Context.stopService()
- 类似问题的其他stackoverflow答案
我读了谷歌开发人员的一些评论,他们说它只是 Intended Behavior
。请问是三星的系统还是安卓系统出现的。有人对此有意见吗?我怎样才能解决这个问题?
原文由 Beyazid 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在等待我的崩溃报告来分享解决方案。我将近 20 天没有遇到任何崩溃或 ANR。我想分享我的解决方案。它可以帮助那些遇到这个问题的人。
在
onCreate()
方法中onCreate()
的顶部创建了一个 通知通道。 官方文档Service.startForeground()
Context.startForegroundService()
方法。在我的prepareAndStartForeground()
方法中。出于这个原因,我手动向我的服务类添加了相同的功能,而不是调用
ContextCompat.startForegroundService()
prepareAndStartForeground()
方法这是我的
onCreate()
我的
onStartCommand()
onRebind
,onBind
,onUnbind
这些方法我们需要在 onDestroy() 调用时清除一些东西
我希望此解决方案适合您。