Kno*_*ing 10 android foreground-service remoteserviceexception android-9.0-pie
我遇到了 Playstore 报告的大量异常。来自 Android P 的 RemoteServiceException。
我正在创建 android 前台服务,然后调用 startForegound(with channel)。
但 99.9% 只有 9.0(android P) 用户报告 RemoteServiceException。我检查了我是否为该服务制作了通知渠道。我还检查了我是否在 OREO 之后为 os 调用了 startForegroundService。
每个代码都没有问题。
但是我发现我多次调用 startForegroundService() ,但是在第一次创建 Service 时只调用了一次 onCreate() 。所以 onCreate() 中的 startForeground() 只被调用一次。
但是,如果我将 startForeground() 放在 onStartCommand() 中,那么它的调用次数也将与我调用 startForegroundService() 的次数一样多。因为每当您调用 startService/startForegroundService 时它也会被调用(即使已经创建了 Service 的实例)。
你认为这是异常的原因吗?
而 mboy 对/sf/answers/3587621901/的评论 也说了类似的话。
小智 0
startForeground()您可以在调用之前尝试此代码块onStartCommand()
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, NotifyManagerUtils.getNotificationDefaultChannelId());
builder.setWhen(System.currentTimeMillis())
.setSmallIcon(R.drawable.app_icon);
startForeground(YOUR_ID, builder.build());
}
} catch (Exception e) {
if (DEBUG) {
Log.e(TAG, e.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
您应该在服务中了解更多信息,如果您多次onCreate()调用,但会像您调用的次数一样运行,所以我认为您应该添加对您的服务的检查,如果该服务还活着,那么不要调用也许可以解决这个问题。startService()/startForegroundService()onStartCommand()startForeground()
同样的问题请检查这个。
| 归档时间: |
|
| 查看次数: |
1356 次 |
| 最近记录: |