他のアプリケーションが、あとから実行できるIntent。Intentを他のアプリに渡す。他のアプリケーション(VM)に、あとで呼び出して欲しいIntentを作って渡す。いってもIntentは自分のアプリ内に対する、明示的なものじゃないとダメな。Intentの投げかたを指定する。IntentをContext.startActivity()Context.startService()Context.sendBroadcast()などに渡すとそのまま実行されるが、PendingIntent.getActivity()PendingIntent.getService()PendingIntent.getBroadcast()に渡すとそれぞれの保留Intentを取得できる。これを他のアプリケーションに渡してあげよう。やって実現されてるの。他のアプリ(VM)からIntent実行できるとかキモいよな。PendingIntentは親のアプリが死んでも使える。その実体は!?という感じだけど、PendingIntentはただのトークン。トークンとデータを紐付けているのはAndroidのシステム。大元のシステム側にデータを保存してるだけ。使いまわされるような仕組みになっている。同じようなやつかどうかはIntent.filterEqualsによって判定されるんだけど、これ、extraをみていない。categoriesが同じかどうかを判定している)だからextraかえたPendingIntentを2つ作ると、実体は1つだけになる。この使いまわしの方法はgetするときにflagで指定できる。使いまわされたくないなら、getするときのrequestCodeを別々の値にする。この設計思想はアレに似てる。他のActivityに対して返り値を1つだけ要求する。他のアプリに対してIntentを1つだけ要求する。それだけだとアレだから、ってのでrequestCodeが用意してある。requestCodeをアプリ内でユニークにしておけば、上書きされることは無い。自分の胸に手を当てて確認して欲しい。