My Photo

« ラストエグザイル 銀翼のファム #7「Weak square」 | Main | 第33節、新潟惨敗、磐田も惨敗 »

November 27, 2011

Androidアプリ開発メモ044:AppWidget その5:ボタン押下時の動作の取り消し

RemoteViews#setOnClickPendingIntent()でセットしたボタンの動作を取り消すには、PendingIntent#cancel()を使う。
これが適切な方法なのかはわからないが、とりあえず一度セットした動作を下記のコードでとりえ消すことが出来る。

android.app.PendingIntentクラス
public void cancel()
現在アクティブなPendingIntentをキャンセルする。PendingIntentを所有している元のアプリケーションのみそれを取り消すことができる。。

/**
 * validがtrueの場合、ボタンが押されたらActivityを開くようにセットする。<br />
 * validがfalseの場合は、trueの時にセットした動作を取り消す。ボタンを押しても何も起きなくなる。
 */
void setEvent(Context context, int appWidgetId, RemoteViews views, boolean valid) {
  Intent intent = new Intent(context, com.example.sampleactivity.SampleActivity.class);
  intent.setAction(BUTTON_ACTION);
  intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
  PendingIntent pendingIntent = PendingIntent.getActivity(context, appWidgetId, intent, 0);
  if (!valid) {
    pendingIntent.cancel();
  }
  views.setOnClickPendingIntent(R.id.awButton, pendingIntent);
}

« ラストエグザイル 銀翼のファム #7「Weak square」 | Main | 第33節、新潟惨敗、磐田も惨敗 »

Androidアプリ開発」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/53350869

Listed below are links to weblogs that reference Androidアプリ開発メモ044:AppWidget その5:ボタン押下時の動作の取り消し:

« ラストエグザイル 銀翼のファム #7「Weak square」 | Main | 第33節、新潟惨敗、磐田も惨敗 »

April 2017
Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof