我有一个注册了BroadcastReceiver的应用程序,该应用程序监听android.intent.action.EVENT_REMINDER的意图。从奥利奥(Oreo)根本不起作用,直到您添加应用作为节能的例外。
但是我认为这是android中的错误,因为它们在文档中明确指出:
作为Android 8.0(API级别26)后台执行限制的一部分, 面向API级别26或更高级别的应用程序无法再注册 清单中隐式广播的广播接收器。 但是,目前有一些广播免于这些广播 限制
并且ACTION_EVENT_REMINDER在列表中!
因此,如果有例外,为什么在我将我的应用列入能源优化白名单之前,我为什么不接收广播?这应该不是必需的,但来自Oreo。
我做错什么了吗?我的清单:
<receiver android:name=".services.MyReceiver" >
<intent-filter>
<action android:name="android.intent.action.EVENT_REMINDER" />
<data android:scheme="content" />
</intent-filter>
</receiver>
在奥利奥之前表现出色。仅在Oreo之后,如果我将应用程序添加为节电的例外。