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

时间:2012-08-06 21:24:23

标签: android android-appwidget appwidgetprovider

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

不幸的是,在将应用程序升级到新版本后,用户需要删除之前创建的所有小部件,并且必须再次安装它们。这非常烦人。然而,我确信有办法解决。

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

我可以使用四个小部件回调中的任何一个来更新小部件吗?有没有我可以采取行动并更新窗口小部件的后升级回调?

2 个答案:

答案 0 :(得分:4)

我没有意识到重新安装应用后会调用onUpdate。所以代码只是进入更新方法,并在每次升级后调用:

public class WidgetProvider extends AppWidgetProvider {

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

}

答案 1 :(得分:1)

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

相关问题