Android 小部件仅在2次安装或重新启动后工作

Android 小部件仅在2次安装或重新启动后工作,android,widget,onupdate,Android,Widget,Onupdate,我的widget应用程序只有在我安装widget时才能工作,将其添加到屏幕上,然后再次安装,如果我添加另一个widget,我必须再次安装,以便第二个widget开始工作(重新启动设备也有帮助,在重新启动屏幕上的所有widget之后, 我有配置文件,但它没有到达我的appWidgetProvider(操作是在onUpdate方法上设置的),如何强制我的应用程序从配置文件更新小部件 我的整个项目: 谢谢!唯一的区别是,您的代码在更新小部件之前完成了活动。 从中,将不会第一次调用onUpdate方法

我的widget应用程序只有在我安装widget时才能工作,将其添加到屏幕上,然后再次安装,如果我添加另一个widget,我必须再次安装,以便第二个widget开始工作(重新启动设备也有帮助,在重新启动屏幕上的所有widget之后, 我有配置文件,但它没有到达我的appWidgetProvider(操作是在onUpdate方法上设置的),如何强制我的应用程序从配置文件更新小部件

我的整个项目:


谢谢!

唯一的区别是,您的代码在更新小部件之前完成了活动。 从中,将不会第一次调用onUpdate方法。 我认为你必须补充以下内容:

super.onCreate(icicle);
setResult(RESULT_CANCELED);
删除此行:

setResult(RESULT_CANCELED, resultValue);
之后,将调用更改为update before setResult and finish():

我没有复制你的问题,请让我知道,如果这对你的工作

共享源代码后,基本问题是,在第一次创建时,您将单击意图添加到文本中,在更新时,您将挂起的意图添加到imageView中。。。 更改此行可以解决您的问题。请在上测试

views.setOnClickPendingIntent(R.id.example_widget_imageview, clickPendingIntent);

我的第一个镜头。看看项目中的文件
AndroidManifest.xml

有一行代码可能会导致您描述的问题

android:allowBackup="true"
是否允许应用程序参与备份和还原基础结构。如果此属性设置为false,则将永远不会执行应用程序的备份或还原,即使是通过完整系统备份,否则将导致通过adb保存所有应用程序数据。此属性的默认值为true

简而言之:卸载应用程序并不意味着您已经卸载了应用程序的内容和设置

尝试将其设置为
false

相关问题:



备选方案:首次安装后,清除应用程序的缓存,然后运行(或者调用terminal
adb shell pm clear实际上,如果您的代码中没有任何内容可以导致您描述的这种行为,那么如果您在github上发布该项目,将更容易为您提供帮助。我已将该项目上传到github,上面的链接^^^^您是否可以共享您的清单和完整的配置活动代码?您的代码与andr类似oid示例,请您测试一下您是否可以在示例应用程序上重现该问题,在这种情况下可能是设备问题…您好,我已将我的项目上载到github:您好,我已签出您的项目,它似乎可以按预期工作。我安装了小部件,选择了时间…它可以很好地进行多次安装,请您解释一下这是您的问题吗?当您添加小部件并选择时间时,如果您按下小部件,它不会响应(仅在重新启动后),这对您有效吗?我在手机上测试了它的工作状态…注意:不要使用SetPendingEntTemplate它仅在小部件上显示ListView时使用。。。
android:allowBackup="true"