android - 应用程序更新后 "Widget loading"(小部件提供程序的路径已更改)

标签 android widget

我的小部件提供程序在这条路径上:

com.arkadiusz.Provider.AppWidgetProvider

更新后,我把这个路径改成了

com.arkadiusz.providers.AppWidgetProvider

我发现这会导致用户更新应用程序时出现“加载小部件”问题。是否有任何解决方案以某种方式告诉系统提供商的位置已更改?我知道一种解决方案是将它留在以前的位置,但它不符合我项目中的包命名约定

最佳答案

没有办法实现你想要的。 AppWidgetHost 只是试图从 AppWidgetManager 获取您的小部件,而 AppWidgetManager 试图通过 ComponentName 获取以前的小部件,所以在更改你的 AppWidgetProvider 包名称,AppWidgetHost 无法恢复你以前的小部件,因为他有旧的 ComponentName。这就是您无法实现这一目标的原因。

附言Android 中的小部件如此不受欢迎,这就是它的 API 非常糟糕的原因。

关于android - 应用程序更新后 "Widget loading"(小部件提供程序的路径已更改),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49975191/

相关文章:

android - 不删除 Arraylist 中的特定项目

javascript - 根据内容调整 iframe 的大小

flutter - 在表单窗口小部件中放置扩展的位置

Android 小部件,重启后它没有显示

php - 删除 Wordpress 中的默认小部件

android - 异常详细信息 : java. lang.IllegalStateException : Process 3188 Exceeded cursor quota 100, 将用 Rom MIUI 杀死它

android - 将图像资源设置为 RecyclerView 列表项

android - 如何以编程方式设置 Admob appID (19.1.0)?

android - 在 onDestroy() 之后 Activity 实例保留在内存中

java - Android 主屏幕小部件