在锁定屏幕上删除小部件时未调用接收 - Nexus 7



我想在Jelly Bean(Nexus 7,Android 4.2.1)的锁定屏幕上启用我的小部件

我的问题是,当您从锁定屏幕中删除小部件时,永远不会调用onReceive(),创建与添加/删除它一样多的幽灵小部件。

它在主屏幕中工作正常(您删除一个小部件,调用onReceive(),然后onDelete(),如果它是最后一个小部件onDisable()),但在锁定屏幕上不起作用。

在锁定屏幕上,onReceive()需要 APPWIDGET_ENABLEDAPPWIDGET_UPDATEAPPWIDGET_UPDATE_OPTIONS,仅此而已。

要在锁定屏幕中放置小部件,您只需将android:widgetCategory="home_screen|keyguard"添加到小部件并在锁定屏幕上进行测试

对我的果冻豆锁屏小部件有同样的体验。 onReceive(),onDelete()和onDIsable()永远不会被调用,即使你从锁定屏幕中删除它,小部件也会不断更新。在我的Galaxy Nexus(4.2.1)和Nexus 7(4.2.1)上相同的行为。幽灵小部件在重新启动后消失。

也许与内置锁屏小部件的行为有关。删除时钟后,时钟将重新出现。

希望这在文档中得到澄清。

试试这个

"需要导出AppWidgetProvider,以便协调应用程序小部件(在主机和提供商之间)的核心操作系统进程可以与之通信。因此,android:exported="false"是不建议的。
老实说,我本来不希望与提供商合作,而不仅仅是一些活动。

共享资源软件

https://stackoverflow.com/a/22719694/4683601

        <receiver 
            android:name=".AppWidgetBarProvider"
            android:exported="true"
            >
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/appwidget_bar_info" />
        </receiver>

最新更新