ちょっと、はまったので、解決方法を書いておきます。
この現象は、ActivityにsingleTopなどのフラグを設定しているときで、
渡すActivityがすでに起動しているときに起きます。たぶんnotificationから、intentでputExtraで
値を渡すときにハマる場合があるんじゃないかと思います。
つまりこういう時、
notificationから、Activityを起動
Intent にputExtraで、値を設定して、PendingIntentして送る。
notificationをクリック
↓
getIntentして、そのIntentで、getExtra系のメソッドを
使ってみたが値がない状態
これを回避するためには、
起動するActivityで、onNewIntentをオーバーライド(オーバーロード)する 。
起動するときに、値が欲しい場合もあるので、
onCreateでは、getIntentをしてIntentを取得してそれをonNewIntentの
引数に渡して起動するように書いておく。
コードで書くとこんな感じ
onCreate{
:
onNewIntent(getIntent());
:
}
onNewIntent(Intent intent){
value=intent.getExtra
:
}
てな感じ。
もし、notificationから起動する場合は、singleTopとかの flagを設定しておくことを
お忘れなく。