🥏

PendingIntent概念軽くまとめる

2023/12/17に公開

PendingIntent

Pending Intent を直訳すると、保留intentです。
文字通りIntentをすぐに始めずに先送りして特定時点でIntentを始めさせるクラスです。

PendingIntentを生成する時、生成者メソッドでIntentを入れます。
ユーザーが外部アプリを使用している時、PendingIntentの中にあるIntentを実行させてくれます。
外部アプリに権限を許可し、自分のアプリ自体のプロセスで実行するかのように使用させることです。
すなわち、外部アプリを使用している時、自分のアプリIntentを使用しなければならない場合、PendingIntentを使います。

PendingIntentの使用事例

  • アプリNotificationをクリックするとIntent実行
  • 携帯電話のホーム画面にあるアプリウィジェットをクリックするとIntentを実行
  • AlarmManagerを介して指定された時間にIntentを実行

PendingIntent生成者メソッド

  • Activityを開始するIntentの場合
PendingIntent.getActivity()
  • Serviceを開始するIntentの場合
PendingIntent.getService()
  • BroadcastReceiverを開始するIntentの場合
PendingIntent.getBroadcast()

(context:Context!、requestCode:Int、intent:Intent、flags:Int)が入ります。

  1. Context
  2. request Code : Pending Intent を区分するためのコード
  3. intent:Pending Intentが実行するインテント
  4. flags:Pending Intentに関する情報(複数指定可能)
  • FLAG_UPDATE_CURRENT:既に生成されたPendingIntentがある場合は、上書きする
  • FLAG_CANCLE_CURRENT:既に生成されたPendingIntentがある場合は、キャンセル後に新たに生成
  • FLAG_NO_CREATE:既に生成されたPendingIntentがある場合、 それを使用
  • FLAG_ONE_SHOT : 該当 Pending Intentを一回限りで使用

Discussion