我在Playstore上遇到了许多异常报告。这些异常是由Android P的RemoteServiceException引起的。
我正在创建Android前台服务,然后调用startForeground(使用通道)。
但是99.9%的用户只有9.0(Android P)才会报告RemoteServiceException。我检查了是否为服务创建了通知通道,也检查了在OREO之后是否调用了startForegroundService。
每行代码都没有问题。
但是我发现我正在多次调用startForegroundService(),但Service的onCreate()只在第一次创建时被调用。因此,在onCreate()中调用的startForeground()也只被调用一次。
但是,如果我将startForeground()放在onStartCommand()中,则它将随着我调用startForegroundService()的次数而被调用多次。因为它将在每次调用startService/startForegroundService时被调用(即使已经创建了Service实例)。
您认为这是异常的原因吗?
并且mboy在https://dev59.com/MFUK5IYBdhLWcg3w0Sx1#51251741中的评论也提到了类似的事情。
我正在创建Android前台服务,然后调用startForeground(使用通道)。
但是99.9%的用户只有9.0(Android P)才会报告RemoteServiceException。我检查了是否为服务创建了通知通道,也检查了在OREO之后是否调用了startForegroundService。
每行代码都没有问题。
但是我发现我正在多次调用startForegroundService(),但Service的onCreate()只在第一次创建时被调用。因此,在onCreate()中调用的startForeground()也只被调用一次。
但是,如果我将startForeground()放在onStartCommand()中,则它将随着我调用startForegroundService()的次数而被调用多次。因为它将在每次调用startService/startForegroundService时被调用(即使已经创建了Service实例)。
您认为这是异常的原因吗?
并且mboy在https://dev59.com/MFUK5IYBdhLWcg3w0Sx1#51251741中的评论也提到了类似的事情。