如何从服务更新小部件?

How to update widgets from a service?(如何从服务更新小部件?)
本文介绍了如何从服务更新小部件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个后台服务,可以配置为每 x 分钟执行一次操作.我想实现一个小部件,每次我的服务执行该操作时都会更新.但是,我无法以任何方式调用 AppWidgetProvider 的 onUpdate 方法,除非将小部件添加到主屏幕.

I have a background service that can be configured to perform some action every x minutes. I want to implement a widget that gets updated every time my service performs that action. However, I can't get the onUpdate method of my AppWidgetProvider called in any way, except when adding a widget to the homescreen.

我尝试发送 APPWIDGET_UPDATE 意图,但 onUpdate 没有被调用,尽管 AppWidgetProvider 确实收到了意图,因为调用了 onReceive 方法.有什么方法可以从服务触发小部件更新?

I tried sending APPWIDGET_UPDATE intents but onUpdate did not get called although the AppWidgetProvider did receive the intent since the onReceive method was called. Is there any way I can trigger widget updates from a service?

推荐答案

只需让自己成为一个 RemoteViews 并直接在 Service 中更新小部件.您将通过以下方式获得 AppWidgetManager:

Just make yourself a RemoteViews and update the widget(s) directly in the Service. You'll get your AppWidgetManager via:

AppWidgetManager mgr=AppWidgetManager.getInstance(this);

其他一切正常.

注意:-如果您真的想强制现有的 AppWidgetProvider 完成工作,请向您的组件发送带有自定义操作的广播,然后调用 onUpdate() 自己从 onReceive() 获取时.

Note:- If you really want to force the existing AppWidgetProvider to do the work, send a broadcast with a custom action to your component, and call onUpdate() yourself from onReceive() when you get it.

这篇关于如何从服务更新小部件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

How to target newer versions in .gitlab-ci.yml using auto devops (java 11 instead of 8 and Android 31 instead of 29)(如何在.gitlab-ci.yml中使用自动开发工具(Java 11而不是8,Android 31而不是29)瞄准较新的版本)
Android + coreLibraryDesugaring: which Java 11 APIs can I expect to work?(Android+core LibraryDesugering:我可以期待哪些Java 11API能够工作?)
How to render something in an if statement React Native(如何在If语句中呈现某些内容Reaction Native)
How can I sync two flatList scroll position in react native(如何在本机Reaction中同步两个平面列表滚动位置)
Using Firebase Firestore in offline only mode(在仅脱机模式下使用Firebase FiRestore)
Crash on Google Play Pre-Launch Report: java.lang.NoSuchMethodError(Google Play发布前崩溃报告:java.lang.NoSuchMethodError)