APPWIDGET_UPDATE奥利奥兼容性

问题描述 投票:0回答:2

在app清单中,我订阅了这个广播接收器

       <receiver
            android:name=".widget.MyWidgetProvider"
            android:label="@string/widget_label_big">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
                <action android:name="com.mydomain.action.UPDATE_WIDGET"/>
            </intent-filter>

            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/widget_info"/>
        </receiver>

APPWIDGET_UPDATE不在android隐式广播白名单https://developer.android.com/guide/components/broadcast-exceptions

这是否符合android O?如果不是,我可以通过什么解决方案通知APPWIDGET_UPDATE?

android broadcastreceiver android-8.0-oreo
2个回答
0
投票

这些操作不在白名单中,但它没有被弃用,小部件在api 26+上运行正常。此外,android开发团队为使用小部件添加了一些新的api(与用户交互,如固定等)


0
投票

如果您在Oreo及以上时无法接收广播,在为intent创建sendBroadcast时,您必须指定必须处理它的类,否则它将不会触发。

例:

Intent i = new Intent("com.mydomain.action.UPDATE_WIDGET");
i.setClass(context, MyWidgetProvider.class);
sendBroadcast(i);
© www.soinside.com 2019 - 2024. All rights reserved.