2012-08-06 52 views
4

我创建了一个应用程序(https://play.google.com/store/apps/details?id=com.widget.analytics),它使用AppWidget在Android主屏幕上显示一个人的Google Analytics统计信息。升级/重新安装应用程序后,如何更新Android AppWidget?

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

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

是否有任何可以用来更新小部件的四个小部件回调?是否有可以采取行动并更新小部件的后期回调回调?

回答

3

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

public class WidgetProvider extends AppWidgetProvider { 

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

} 
1

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

相关问题