Java 为什么我的Android主屏幕应用程序小部件不能正常工作?

Java 为什么我的Android主屏幕应用程序小部件不能正常工作?,java,android,firebase,android-appwidget,Java,Android,Firebase,Android Appwidget,我正在为聊天应用程序开发一个主屏幕小部件。我创建了一个和一个。 当我创建一个家庭小部件时,配置会显示登录用户的所有可用聊天信息,当选择其中一个时,小部件应显示为另一个聊天用户的图像。挂起的内容应打开正确的聊天活动。 为此,我需要3个字符串值,可以从我的Firebase数据库中恢复: ImageThumb—Firebase存储映像的url ChatterUserName-另一个chatter的名称 list_user_id—要从中检索消息的聊天程序的Uid 数据库 这里是 我将1个字符串保存为

我正在为聊天应用程序开发一个主屏幕小部件。我创建了一个和一个。 当我创建一个家庭小部件时,配置会显示登录用户的所有可用聊天信息,当选择其中一个时,小部件应显示为另一个聊天用户的图像。挂起的内容应打开正确的聊天活动。 为此,我需要3个字符串值,可以从我的Firebase数据库中恢复:

  • ImageThumb—Firebase存储映像的url
  • ChatterUserName-另一个chatter的名称
  • list_user_id—要从中检索消息的聊天程序的Uid 数据库
这里是

我将1个字符串保存为SharedRef,将2个字符串保存为

当我创建第一个小部件时,一切正常。

我检索所有字符串,创建正确的RemoteView,并使用正确的数据打开正确的聊天室

当我创建第二个小部件时会出现问题。

第二个小部件的图像是正确的,但当我单击它时,它会打开第一个小部件的聊天活动

我已登录以查看是否以正确的方式检索了所有数据

08-14 04:37:07.899 27778-27778/com.example.alessandro.mychatapp D/Constraints: onUpdate: appWidgetId: 331, listUserId: kcL4c30lnjhU36TBqhgJQox4dVk1, userName: Dj Maru, userThumb: https://firebasestorage.googleapis.com/v0/b/mychatapp-8a476.appspot.com/o/profile_images%2Fthumbs%2FkcL4c30lnjhU36TBqhgJQox4dVk1.jpg?alt=media&token=9a748bfe-1f39-44fa-9c29-38d5e60aaa86
08-14 04:37:07.910 27778-27778/com.example.alessandro.mychatapp D/Constraints: updateAppWidget: appWidgetId: 331, user_id: kcL4c30lnjhU36TBqhgJQox4dVk1, userName: Dj Maru, image: https://firebasestorage.googleapis.com/v0/b/mychatapp-8a476.appspot.com/o/profile_images%2Fthumbs%2FkcL4c30lnjhU36TBqhgJQox4dVk1.jpg?alt=media&token=9a748bfe-1f39-44fa-9c29-38d5e60aaa86
08-14 04:37:07.917 27778-27778/com.example.alessandro.mychatapp D/Constraints: onUpdate: appWidgetId: 332, listUserId: 9saSiY1WT0PNt6derLMsGBcZvJh2, userName: redjack, userThumb: https://firebasestorage.googleapis.com/v0/b/mychatapp-8a476.appspot.com/o/profile_images%2Fthumbs%2F9saSiY1WT0PNt6derLMsGBcZvJh2.jpg?alt=media&token=28d1b36c-6c43-454e-9ecd-cafca9cee994
08-14 04:37:07.920 27778-27778/com.example.alessandro.mychatapp D/Constraints: updateAppWidget: appWidgetId: 332, user_id: 9saSiY1WT0PNt6derLMsGBcZvJh2, userName: redjack, image: https://firebasestorage.googleapis.com/v0/b/mychatapp-8a476.appspot.com/o/profile_images%2Fthumbs%2F9saSiY1WT0PNt6derLMsGBcZvJh2.jpg?alt=media&token=28d1b36c-6c43-454e-9ecd-cafca9cee994
我还检查了WidgetConfigurationActivity中的mAppWidgedId值,以确保使用新小部件创建了新Id

然后,如果我关闭或重新启动设备,第一个小部件将停止工作……第二个小部件工作正常

有人可以帮助我理解代码中的错误以及如何修复它?谢谢。
欢迎任何建议。

您必须在提供程序中使用views.SetPendingEntTemplate(…),而不是SetOnClick PendingContent,然后要为小部件中的每个项目设置唯一的onclick行为,您必须在填充每个项目的适配器中为每个项目设置FillinContent

以下是谷歌开发者的链接:

如果您还有其他问题,请随时问我:)

致以最良好的祝愿, 拉斯洛