引导接收器在Oreo中不起作用

时间:2017-09-07 17:14:37

标签: android broadcastreceiver

我一直在阅读大约一个小时的答案,但看不出我做错了什么让我的Boot Receiver停止了。

这是我的清单 -

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<receiver
            android:name=".BootReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter android:priority="500">
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>

我的BootReceiver看起来像这样 -

public class BootReceiver extends BroadcastReceiver {

    private static final String TAG = "BootReceiver";

    @Override
    public void onReceive(Context context, Intent intent) {

        Log.i(TAG ,"onReceive");

        if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
            Log.i(TAG ,"onReceive2");
            new MainActivity().nextNotification(context);
        }
    }
}

据我所知,这应该是我需要的全部?我能错过什么?

我有理由相信它之前有效(可能是在Android N上),但现在还没有开始(Android O)。

有什么我可以错过的吗?它不适用于模拟器或我的Pixel。实际上,它在API 21上的模拟器上工作正常。我认为Boot Receiver在Oreo上是白名单?

1 个答案:

答案 0 :(得分:1)

有时Android Studio可能会出错。 (此处为v3.0 Beta 4)将其关闭并重新启动它,这对我有用。