2012-08-06 134 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廣播。

相關問題