公共类LocationAlarmReceiver扩展了BroadcastReceiver { 私有静态最终String TAG =“ LocationAlarmReceiver”;
@Override
public void onReceive(Context context, Intent intent) {
if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
if (AppClass.networkConnectivity.isNetworkAvailable()) {
if (AppClass.isUserLoggedIn()) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
context.startForegroundService(new Intent(context, UpdateLatLngBackgroundService.class));
} else {
context.startService(new Intent(context, UpdateLatLngBackgroundService.class));
}
}
}
}
}
}
startForeground的错误通知:java.lang.RuntimeException:服务通知的无效通道: 异常即将到来
答案 0 :(得分:0)
如果要通过使用startForegroundService启动后台服务
它将被视为前景服务。对于前景服务,您必须创建要显示的通知。 see for more detiails
在从oreo(8.0)开始创建通知时,您必须创建一个频道并向NotificationManager注册。 More details how to create notification channel
答案 1 :(得分:0)
确保您添加了属性-> name =“。您在其中创建通道的类的名称。
清单文件中的内部标签。