6

AppWidget を使用して Android のホーム画面に Google アナリティクスの統計情報を表示するアプリ (https://play.google.com/store/apps/details?id=com.widget.analytics) を作成しました。

残念ながら、アプリを新しいリリースにアップグレードした後、ユーザーは以前に作成したすべてのウィジェットを削除し、再度インストールする必要があります。これは非常に面倒です。それでも、私は回避策があると確信しています。

アプリをアップグレードした後、ウィジェットは破棄されず、レイアウトから継承する「デフォルト」状態になります。

ウィジェットの更新に使用できる 4 つのウィジェット コールバックはありますか? 操作してウィジェットを更新できるアップグレード後のコールバックはありますか?

4

2 に答える 2

4

onUpdateアプリが再インストールされると呼び出されることに気づきませんでした。したがって、コードは update メソッドに入るだけで、アップグレードのたびに呼び出されます。

public class WidgetProvider extends AppWidgetProvider {

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

}
于 2012-11-07T11:25:05.757 に答える
1

You could register a BroadcastReceiver to receive the ACTION_PACKAGE_REPLACED broadcast, and then in the receiver notify your widgets to reload (likely through AppWidgetManager.notifyAppWidgetViewDataChanged(..)). You may also need to receive the ACTION_MY_PACKAGE_REPLACED broadcast as well.

于 2012-08-06T22:44:52.813 に答える