2012年2月9日木曜日

PendingIntent

RemoteViewやNotificationクラスに用いるPendingIntentというもの
よく理解出来ていないため少し整理してみます。

これはタイミングを指定して発行することができるIntentのようです。
new したIntentを、直ちに発行するのではなく、ボタンを押されたタイミングで発行する等に
利用するようです。
引数でIntentのインスタンスを受けとって包むので、Wrapper的な役割ですかね。

PendingIntentは、以下のstatic メソッドから取得できる
どこに対して発行するかによって、作り方が違う

getActivity(Context, int, Intent, int)
→Activityへ投げる
getBroadcast(Context, int, Intent, int)
→ブロードキャストへ投げる
getService(Context, int, Intent, int);
→Serviceへ投げる

例えば、Notificationに使う場合は、
通知バーをタップしたタイミングでIntentが発行されるという感じのようです。

PendingIntent自身はOSが管理しているものなので
PendingIntentを起動した元のActivityが死んでも、それはOSによって残り続け
通知バーをタップしたタイミングで、Intentが投げられ、
元のAcitivyが起動されるという感じのようです(自信なし)

■参考にさせて頂いたサイト:
http://y-anz-m.blogspot.com/2011/07/androidappwidget-pendingintent-putextra.html

0 件のコメント:

コメントを投稿