我的小部件提供程序在这条路径上:
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/