- речь идет о самостоятельной регистрации с необходимыми неявными намерениями. И упоминает, когда обслуживание переднего плана может быть необходимо ...

я есть служба, которая планирует Pendingintent, который запускает мое уведомление. Однако, начиная с Android O, я получаю эту ошибку. Я провел некоторое исследование и наткнулся наcontext.registerReceiver , но это, похоже, не решает проблему.

Ошибка:

W/BroadcastQueue: Background execution not allowed: receiving Intent { act=android.intent.action.PACKAGE_ADDED dat=package:my.great.package flg=0x4000010 (has extras) } to com.google.android.googlequicksearchbox/com.google.android.apps.gsa.googlequicksearchbox.GelStubAppWatcher

`` `

Мои ожидания:

Intent myNotification = new Intent("services.notifications.Notification");
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, (int) (Math.random() * Integer.MAX_VALUE), myNotification, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) (this.getSystemService(Context.ALARM_SERVICE));
alarmManager.setExact(AlarmManager.RTC_WAKEUP, day.getTimeInMillis(), pendingIntent);

Мое уведомление:

public class Notification extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        context.registerReceiver(this, new IntentFilter());

        try {
            WakeLock wakeLock = ((PowerManager) context.getSystemService(Context.POWER_SERVICE)).newWakeLock(1, "NotificationWakeLock");
            wakeLock.acquire(10000);

            try {
                scheduleNotification(context, intent);
            } finally {
                wakeLock.release();
            }
        } catch (NullPointerException e) {}
    }
}
 Jason26 сент. 2017 г., 21:04
Решил, позже добавлю решение
 NinjaCoder13 нояб. 2017 г., 18:53
как ты этого добился?

Ответы на вопрос(1)

Решение Вопроса

Intent test = new Intent(this, NotificationService.class);
startForegroundService(test);

Это покажет уведомление о том, что мое приложение работает на переднем плане.

И, добавив это в создание моего сервиса:

startForeground(100, new NotificationCompat.Builder(this).build());
 fillobotto26 апр. 2018 г., 12:27
Мне это не полезно, метод onReceive даже не вызывается
 yvolk20 янв. 2019 г., 06:48
@AnkitKumarSingh Пожалуйста, посмотрите этот ответ:stackoverflow.com/a/54273840/297710 - речь идет о самостоятельной регистрации с необходимыми неявными намерениями. И упоминает, когда обслуживание переднего плана может быть необходимо ...
 Ankit Kumar Singh13 июл. 2018 г., 13:19
Есть ли какое-либо иное решение, кроме как постоянно показывать уведомление пользователю, что не должно быть хорошей идеей?

Ваш ответ на вопрос