私のappwidgetとアクティビティの間のIPCメカニズムとしてMessengerを使用しようとしています。バンドルからメッセンジャーが消えるonCreate
私は以下のことをします: 私のappwidgetでボタンがクリックされたときに特定のアクティビティを開始するインテントを作成します。私は私のウィジェットのボタンをクリックすると、私は私が持っている唯一の余分なデータがFlashlightModule.Type
例えばあることがわかりますバンドルを見てみると
intent = new Intent(mContext, TorchLightActivity.class);
intent.putExtra(RPC, new Messenger(mHandler));
intent.putExtra(TYPE, mType);
...
final PendingIntent actionPendingIntent = PendingIntent.getActivity(mContext, 0, intent, 0);
remoteView.setOnClickPendingIntent(layout, actionPendingIntent);
活動が
onCreate(...)
final Bundle bun = getIntent().getExtras();
// Get null here
mMessanger = (Messenger) bun.get(FlashlightModule.RPC);
// Working great
mType = bun.getInt(FlashlightModule.Type);
を起動しますint値
意図は最初からエキストラを使用して作成された(Get the intent from onCreate in Androidを参照)とのsetDataは最初から使用されている(Application widget with bundle?を参照)
は、それは私自身の活動にAppWidget間Messengerを渡すために、すべてのことは可能ですか?
ありがとうございます。
私は奇妙な振る舞いを見つけました。おそらく誰かがそれに光を当てることができます。私は同じ目的からそれを区別するためにintDataにsetDataを使用しています(私は同じアクティビティを使用していますが、別のエキストラを使用しています)。 setDataを突然削除すると、パーセルは正しく渡されます。 –