0

ホーム画面にウィジェットを追加するときに onUpdate() メソッドをマスクする方法は?

ユーザーのクリックをリッスンするウィジェットがあり、onUpdate() で応答します。問題は、ウィジェットをホーム画面に追加しても onUpdate() が実行されることです。

  @Override
  public void onUpdate(Context context, AppWidgetManager appWidgetManager,
      int[] appWidgetIds) {

          if(flag)
                {
                Toast.makeText(context, "OFF", Toast.LENGTH_SHORT).show();
flag=false;
                }
          else
                {
                Toast.makeText(context, "ON", Toast.LENGTH_SHORT).show();
flag=true;
                }
}

または、onUpdate() メソッドでない場合、ユーザーのクリックにどのように応答できますか?

4

1 に答える 1

0

問題は、ウィジェットをホーム画面に追加しても onUpdate() が実行されることです。

それは問題ではない"。onUpdate()ユーザーがアプリ ウィジェットをホーム画面に追加するときに呼び出す必要があるため、アプリ ウィジェットの外観を定義できます。

または、onUpdate() メソッドでない場合、ユーザーのクリックにどのように応答できますか?

PendingIntentアプリ ウィジェットのボタンなどには、自由に使用してください。メソッドPendingIntentに戻る必要はありません。onUpdate()

また、上記のコード スニペットでは、flag. アプリ ウィジェットの更新間でプロセスが常に存続するとは限らないことに注意してください。したがって、あらゆる種類の「フラグ」は、永続的な場所に保存する必要があります。データベースSharedPreferences、またはその他の形式のファイルです。

于 2012-11-13T12:36:51.857 に答える