为什么Pending Intent在android P中不起作用

时间:2019-12-18 07:42:11

标签: java android android-intent service android-pendingintent

我正在将代码从Android 6迁移到9。

 public class AlarmReceiver extends BroadcastReceiver {
    private final static String TAG = "Launcher:" + "AlarmReceiver";
    private final static long ALARM_INTERVAL = 60 * 1000;

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i(TAG, "onReceive");
        AlarmManager alarmManager = (AlarmManager) context
                .getSystemService(Context.ALARM_SERVICE);
        long interval = ALARM_INTERVAL;
        Intent intentRun = new Intent("jq.action.RUN_SERVICE_LAUNCHER");
        PendingIntent pendingIntent = PendingIntent.getBroadcast(
                context.getApplicationContext(), 0, intentRun,
                PendingIntent.FLAG_UPDATE_CURRENT);
        alarmManager.cancel(pendingIntent);
        alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME,
                SystemClock.elapsedRealtime() + interval, interval,
                pendingIntent);
    }

在清单中

 <receiver android:name="com.android.launcher2.custom.AlarmReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_REPLACED" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <intent-filter>
                <action android:name="jq.action.RUN_SERVICE_LAUNCHER" />
            </intent-filter>
        </receiver>

但是它引发了一个错误,

  BroadcastQueue: Background execution not allowed: receiving Intent { act=jq.action.RUN_SERVICE_LAUNCHER flg=0x14 (has extras) } to com.android.launcher/com.android.launcher2.custom.AlarmReceiver

0 个答案:

没有答案