Activity 中的 AppWidgetManager.getAppWidgetIds 返回空列表

2023-12-26

我有一个应用程序小部件,我正在尝试从活动中更新它。

为此,我需要 appwidget id。

我用过AppWidgetManager.getAppWidgetIds但它总是返回一个空列表。

我也用过AppWidgetManager.getInstalledProviders以确保我的ComponentName是正确的,但我仍然得到一个空列表。

我已经看到了与此相关的所有其他问题,但我找不到对我有用的东西。

还有其他方法可以解决这个问题吗?或者另一种更新小部件的方法?

My code:

ComponentName name = new ComponentName(packageName, boardcastReceiverClass);
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
int[] ids = appWidgetManager.getAppWidgetIds(name);
if (ids != null && ids.length > 0) {
   getApplicationContext().sendBroadcast(getUpdateIntent(ids[0]));
}

Thanks.

UPDATE:我应该提到我的 AppWidgetProvider 在一个库项目中。根据我得到的 ComponentNamegetInstalledProviders,我使用了我的应用程序的包名称和类名称以及库的包名称。


您可以在不知道 id 的情况下访问您的小部件

appWidgetManager.updateAppWidget(new ComponentName(this.getPackageName(),Widget.class.getName()), views);

这使您无需知道“appWidgetID”即可访问小部件。然后在活动中:

Intent intent = new Intent(this, Settings.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);

views.setOnClickPendingIntent(R.id.btnActivate, pendingIntent);

AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(this);
appWidgetManager.updateAppWidget(new ComponentName(this.getPackageName(), Widget.class.getName()), views);
finish();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Activity 中的 AppWidgetManager.getAppWidgetIds 返回空列表 的相关文章

随机推荐

  • 使用 Windows 身份验证的 WCF jsonP - 可能吗?

    我正在托管一个输出 jsonp 的 wcf 服务 来自 IIS 打开 Windows 身份验证 的响应是 经过身份验证的服务不支持跨域 javascript 回调 有办法解决这个问题吗 我必须打开 Windows 身份验证 但也想使用 wc
  • SpriteKit 内存泄漏更改包含 SKTileMapNodes 的场景

    我正在尝试使用 Swift SpriteKit 和 SKTileMaps 创建一个简单的 2d 平台游戏 但每次我在包含 SKTileMaps 的场景之间切换时 我都会在 Xcode Instruments 中看到大量内存泄漏 我已经尽可能
  • 将字符串转换为负数

    我需要从字符串类型转换为数字 list 5 4 3 variable Input list 5 4 3 variable epected output 我在转换负数时遇到问题 list 0 int list 0 ValueError 以 1
  • 将 Parse.com 密码迁移到 Django

    我正在尝试将数据从 Parse com 迁移到我们自己的服务器 为此 用户密码也必须迁移 Parse com 使用标准 bcrypt 密码加密 密码按以下格式显示 如何将密码从 Parse 移至另一台服务器 https www parse
  • 当鼠标放置在包含的 div 元素上时更改锚文本的颜色

    当我将鼠标移到文本上时 文本颜色会发生变化 a 链接 但当我将其放在 div 包含它的 当鼠标放在包含的 div 上时 我也想更改锚文本的颜色 more games background color F1F1F1 margin left 1
  • Jackson Yaml 类型信息在序列化时错误

    通过 Jackson 将对象序列化为 yml 时 我得到以下输出 commands dev
  • 如何解决转发的 WinAPI 的循环依赖?

    我试图找到一种方法来解析映射到进程中的特定 API 的内存地址和 DLL 文件名 大多数问题可以通过 DLL 中的导入 导出表以及分析映射模块的导入地址表来解决 这适用于大多数功能 但这个问题发生在一些人身上转发功能 https blogs
  • 将 Asp.Net Core 3.1 应用程序升级到 .Net 5 后,某些 C# 9 功能不可用

    我通过将相应的 csproj 文件修改为以下内容 将 Asp Net Core 3 1 MVC 升级到 Net 5
  • 添加弹出窗口到闪亮的应用程序?

    我想在小部件的标题旁边添加一个 以便用户可以将鼠标悬停或单击它并获取额外的信息和他们可以单击的链接 这就是我现在所拥有的 app R library shiny library shinydashboard library shinyBS
  • 当已经有新帧时如何跳过 didReceiveFrame ?

    在 webrtc 应用程序中 有一个名为 didReceiveFrame 的回调 当有新帧要渲染时会调用该回调 它将新帧作为参数传递 并且可以从该帧中提取纹理 但是 如果由于某种原因主线程被延迟 例如断点 设备旋转 仍然忙于渲染等 那么将为
  • Android中按下按钮时触发事件

    我有以下适用于 Android 的代码 单击按钮后可以正常播放声音 Button SoundButton2 Button findViewById R id sound2 SoundButton2 setOnClickListener ne
  • Kotlin 泛型中“*”和“Any”的区别

    我不确定我是否完全理解两者之间的区别SomeGeneric lt gt and SomeGeneric
  • Visual Studio“目标框架”缺失

    我正在尝试使用 NET Framework 4 5 2 编译我的 NET Standard 类库项目 但是 正如您在我的屏幕截图中看到的 版本 4 5 2 并未显示在提供的目标框架列表中 此外 当我点击安装其他框架 我仍然没有选择4 5 2
  • 如何安装 Laravel 的 Artisan?

    我想在 Laravel 中创建迁移 但根据教程 http laravel com docs migrations我需要 Artisan CLI 这php命令工作正常 我在 Windows 上 我输入php artisan or php ar
  • 将 CSP 标头添加到 Google Cloud Storage

    我正在从 Google Cloud Storage 存储桶提供 SPA Vue 应用程序 我正在努力配置 Google Cloud Storage 存储桶以添加 CSP 响应标头 Content Security Policy defaul
  • 如何异步加载和显示数据

    我正在使用 ASP NET 和 SQL Server 我想从数据库异步加载数据并立即显示部分加载的数据 假设查询结果中有大量记录 3 秒后 它加载了 20 然后我必须立即处理并显示 20 的数据 而不是等待完整的响应 我知道 jQuery
  • 缩放会导致 CSS 形状之间出现间隙

    我有一系列 CSS 六边形 我想对不同的视口宽度应用 CSS 缩放变换 尽管我的六边形形状中出现了间隙 这个问题在任何比例值的 Firefox 上都最为明显 如果缩放为非整数值 它也会出现在 Chrome 中 Firefox 还显示了令人困
  • 由方向改变触发的方法

    当 iOS 设备方向发生变化时 是否有一种运行方法的方法 我只想更改屏幕上的某些对象方向 而不更改其他对象的方向 我使用什么代表等等 干杯 新手 取决于你什么时候想做出反应 如果在旋转之前 override来自 UIViewControll
  • 具有非主键值的 FindAsync

    public class Foo public int Id get set public int UserId get set 这似乎是异步执行此操作的方法 DatabaseContext db new DatabaseContext F
  • Activity 中的 AppWidgetManager.getAppWidgetIds 返回空列表

    我有一个应用程序小部件 我正在尝试从活动中更新它 为此 我需要 appwidget id 我用过AppWidgetManager getAppWidgetIds但它总是返回一个空列表 我也用过AppWidgetManager getInst