gpt4 book ai didi

android - 不允许后台执行。 Android O 待定 Intent

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:14:46 26 4
gpt4 key购买 nike

我有一项服务可以安排启动我的通知的 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 :

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) {}
}
}

最佳答案

我通过添加前台服务解决了这个问题:

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

这将显示一条通知,告知我的应用正在前台运行。

然后将其添加到我的服务的 oncreate 中:

startForeground(100, new NotificationCompat.Builder(this).build());

关于android - 不允许后台执行。 Android O 待定 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46431606/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com