sticky Intent

最近sticky Intentというものを使ったので使用方法をメモ

sticky Intentはsendした後removeするまでの間いつでも参照することができるIntentです。
使い方は簡単で下記の方法で使用できます。

1.AndroidManifestに"android.permission.BROADCAST_STICKY"のパーミッションを追加する。
2.Context.sendStickyBroadcast()でIntentを送信する。
3.Context.registerReceiver()でIntentを受け取る。
4.使い終わったらContext.removeStickyBroadcast()でIntentを削除する。

手順3のregisterReceiver()は手順2で送信したIntentを受け取るIntentFilterを指定すると、戻り値としてIntentが取得できます。
sticky Intentがすでに送信済みでIntentFilterに反応する場合registerReceiver()で指定したBroadcastReceiverに即座にIntentが送られます。
場合によると、registerReceiver()登録直後にIntentを2回受け取る場合があるため注意が必要です。