如何在BOOT_COMPLETED更新第三方小部件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在BOOT_COMPLETED更新第三方小部件?相关的知识,希望对你有一定的参考价值。

在我的应用程序中,用户可以从系统上安装的所有小部件中选择一个小部件,并将其添加到视图中。

如果我在启动设备之前启动我的应用程序,则不会更新窗口小部件。如果我等到启动完成然后启动,它就可以工作了。

由于这些小部件不是我自己的小部件,我无法访问他们的WidgetProvider,并且当事件“BOOT_COMPLETED”发生时无法更新它们。

我怎么能更新它们(如果可能的话)?

更新:

我试过了:

Intent i = new Intent(context, MainActivity.class);
i.setAction("android.appwidget.action.APPWIDGET_UPDATE");
context.sendBroadcast(i);

在BOOT_COMPLETED-BroadcastReceiver的onReceive中。不幸的是它没有用。

答案

收到BOOT_COMPLETED后,您可以尝试将"android.appwidget.action.APPWIDGET_UPDATE"作为广播发送。

另一答案

对于那些在启动后没有自我更新的小部件有问题我建议在onCreate和onDestroy中移动startListening和stopListening方法,如此处所报告的http://selvaline.blogspot.it/2015/10/hosting-widgets-and-regurally-update.html

onCreate:
        mAppWidgetHost.startListening();

onDestroy:
        mAppWidgetHost.stopListening();

以上是关于如何在BOOT_COMPLETED更新第三方小部件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone 上制作小部件

如何在另一个小部件更新qt中的相同内容后更新小部件内容

如何在 GTK 中更新(绘制)一个小部件和仅这个小部件

如何在午夜更新应用小部件?

如何在通知中心频繁更新今日小部件?

如何在 Angular 中动态嵌入来自 Cloudinary 的第三方 javascript 小部件?