升级/重新安装应用程序后,如何更新Android AppWidget?

升级/重新安装应用程序后,如何更新Android AppWidget?,android,android-appwidget,appwidgetprovider,Android,Android Appwidget,Appwidgetprovider,我创建了一个应用程序(https://play.google.com/store/apps/details?id=com.widget.analytics)它使用AppWidget在Android主屏幕上显示一个人的Google Analytics统计数据 不幸的是,在将应用升级到新版本后,用户需要删除之前创建的所有小部件,然后重新安装。这很烦人。然而,我相信有一条路可以走 升级应用程序后,小部件不会被销毁,它们只是处于从布局继承的“默认”状态 我可以使用四个小部件回调中的任何一个来更新小部件吗

我创建了一个应用程序(https://play.google.com/store/apps/details?id=com.widget.analytics)它使用AppWidget在Android主屏幕上显示一个人的Google Analytics统计数据

不幸的是,在将应用升级到新版本后,用户需要删除之前创建的所有小部件,然后重新安装。这很烦人。然而,我相信有一条路可以走

升级应用程序后,小部件不会被销毁,它们只是处于从布局继承的“默认”状态


我可以使用四个小部件回调中的任何一个来更新小部件吗?是否有一个升级后回调,我可以对其进行操作并更新小部件?

您可以注册一个
广播接收器来接收广播,然后在接收器中通知您的小部件重新加载(可能通过
AppWidgetManager.notifyAppWidgetViewDataChanged(…)
)。您可能还需要接收广播。

我不知道重新安装应用程序后会调用
onUpdate
。因此,代码只是进入更新方法,并将在每次升级后调用:

public class WidgetProvider extends AppWidgetProvider {

  @Override
  public void onUpdate (Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds){
    // Here we update the widget :)
  }

}

在你的软件包被安装之后,在你的软件包真正准备好运行之前,它会被广播。不起作用。我很困惑,如果在更新应用程序后,widget change自动调用,那么在你的问题中,为什么你提到“用户需要删除他们之前创建的所有widget,并且必须重新安装它们”?