Приложение крашиться при запуске из BroadcastReceiver

143
01 марта 2019, 06:40

Вот код автозапуска службы. Код срабатывает видно по логам. Но приложение крашиться. Ссылается на строчку `Intent myService = new Intent(context, MyService.class);. Сразу скажу стоял андроид 7.х.х все работало перепрошился на 8.1.1. Появилась такая проблема. Если запустить службу при нажатии кнопки из активити, то проблем нет!

public void onReceive(final Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {

            Intent myService = new Intent(context, MyService.class);
             context.startService(myService);
    }
}
Answer 1

В Android O поменялись правила для сервисов. В вашем случае вы пытаетесь открыть сервис при незапущенной актвиити. Так теперь нельзя на API>26. Вам надо стартовать сервис с показом уведомления как-то так:

ContextCompat.startForegroundService()

или не использовать сервис вовсе и использовать что-то вроде JobScheduler.

Вот полезные статьи: How to handle background services in ANDROID O? и Exploring Background Execution Limits on Android Oreo

READ ALSO
Как использовать Spring контроллер без JSP?

Как использовать Spring контроллер без JSP?

Поставили задачу, написать задание с использованием Spring контроллера (Простая форма ввода сообщения, сохранения, вывода сообщения и тд

161
Как форматировать данные в JTable

Как форматировать данные в JTable

Есть таблица, код который прописан ниже описан в другом классе (на заметку)Таблица должна иметь 1 колонку, и 14 рядков

174