Фоновая служба не работает Приложение вылетает в Android 8.0.1 - PullRequest
0 голосов
/ 01 декабря 2018

Это мой класс получателя

открытый класс LocationAlarmReceiver extends BroadcastReceiver {private static final 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: недействительный канал для уведомления службы: исключение наступает

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

убедитесь, что вы добавили атрибут -> name = ". Имя класса, который вы создали каналы в"

внутри тега в файле манифеста.

0 голосов
/ 01 декабря 2018

Если вы запускаете фоновую службу, используя startForegroundService

, она будет рассматриваться как служба Foreground.Для службы Foreground необходимо создать уведомление для отображения. см. Больше подробностей

И при создании уведомления от oreo (8.0) необходимо создать канал и зарегистрироваться в NotificationManager. Подробнее о создании канала уведомлений

...