【问题标题】:widget only works after 2 installs or reboot小部件仅在 2 次安装或重新启动后才有效
【发布时间】:2018-09-17 12:53:41
【问题描述】:

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

我的整个项目: https://github.com/vlad1001/Widget

谢谢!

【问题讨论】:

  • 实际上,如果您在 github 上发布该项目,您的代码中没有任何地方可以使这种行为成为您所描述的那样,它会更容易为您提供帮助。
  • 我把项目上传到了github,上面的链接^^

标签: android widget onupdate


【解决方案1】:

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

super.onCreate(icicle);
setResult(RESULT_CANCELED);

删除这一行:

setResult(RESULT_CANCELED, resultValue);

之后,将setResult和finish()之前的调用改为update:

        //make the update before finish()
        appWidgetManager.updateAppWidget(appWidgetId, views);

        Intent resultValue = new Intent();
        resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
        setResult(RESULT_OK, resultValue);
        finish();

我没有重现您的问题,如果这对您有用,请告诉我。

共享源代码后,基本问题是,在第一次创建时,您将点击意图添加到 Text,而在更新时,您将待处理的意图添加到 imageView... 更改此行可以解决您的问题。在 PR 上测试...

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

【讨论】:

  • 能否分享您的清单和完整的配置活动代码?您的代码类似于 android 示例,请您测试是否可以在示例应用程序上重现该问题,在这种情况下,它可能是设备问题...android.googlesource.com/platform/development/+/master/samples/…
  • 嗨,我把我的项目上传到了github:github.com/vlad1001/Widget
  • 你好,我已经检查了你的项目,它似乎按预期工作。我安装小部件,选择时间...它适用于多次安装,你能解释一下你的问题吗?
  • 当您添加小部件并选择时间时,如果您按下小部件它没有响应(仅在重新启动后),这对您有用吗?
  • 我在我的手机上进行了测试,它的工作原理......注意:不要使用 setPendingIntentTemplate 它仅在小部件上显示 ListView 时使用......
【解决方案2】:

我的第一枪。查看您项目中的文件AndroidManifest.xml

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

android:allowBackup="true"

是否允许应用程序参与备份和恢复基础架构。如果此属性设置为 false,则不会执行应用程序的备份或恢复,即使是全系统备份也会导致所有应用程序数据通过 adb 保存。该属性的默认值为 true。

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

尝试将其设置为false

相关问题:https://stackoverflow.com/a/35296675/619673


替代方案:首次安装后,清除应用缓存,然后运行(或在终端调用adb shell pm clear <your.package.name)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多