4

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

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

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

在锁定屏幕onReceive()上调用APPWIDGET_ENABLEDAPPWIDGET_UPDATEAPPWIDGET_UPDATE_OPTIONS此而已。

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

4

2 回答 2

2

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

可能与内置锁屏小部件的行为有关。删除后时钟会重新出现。

希望这在文档中得到澄清一段时间。

于 2012-12-09T21:04:03.113 回答
0

试试这个

“需要导出 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>
于 2016-02-26T12:49:41.573 回答