android - 如何在服务中获取我的应用程序的 widgetID 和 ComponentName

标签 android android-widget android-service android-broadcast appwidgetprovider

我正在像这样从服务更新小部件(服务和小部件类在两个不同的包中)

AppWidgetManager widgetManager = AppWidgetManager.getInstance(this);
ComponentName widgetComponent = new ComponentName(this,MyWidgetProvider.class);
int[] widgetIds = widgetManager.getAppWidgetIds(widgetComponent);
Intent update = new Intent();
update.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, widgetIds);
 update.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
sendBroadcast(update);

它会更新我的小部件,但问题是它也会更新设备的其他小部件,因为我的小部件会在所有小部件更新后更新。

所以现在我只想更新我的小部件我该怎么做

最佳答案

根据 Android 文档 getAppWidgetIds 返回已绑定(bind)到特定 WidgetProvider 的 id 列表,这是您的所有小部件实例 id 而不是其他 下的小部件 id WidgetProvider.

关于android - 如何在服务中获取我的应用程序的 widgetID 和 ComponentName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17758041/

相关文章:

android - Kotlin 扩展到第二个构造函数

android - 为 android 4.0 或更高版本创建自定义锁屏?

android - 从服务向 appWidget 提供者发送广播 Intent

android - 如何本地化 Android DatePicker?

java - 如何通过 fragment 从MainActivity调用服务绑定(bind)器?

android - 在 Android 应用程序即服务上录制音频

android - 在 Android 上检测按钮长按

android - 将 JSON 数据加载到 android listpreference

android设置android可绘制颜色

android - RecyclerView页面滚动的实现方法