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



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

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

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

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

我没有意识到一旦重新安装应用程序,就会调用onUpdate。因此,代码只进入更新方法,每次升级后都会调用:

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

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

相关内容

最新更新