0

私のアプリケーションはC2DMメッセージを受信し、C2DMメッセージとともにステータス不良通知を送信します。ここまでは順調ですね。ユーザーが通知をクリックすると、アクティビティが呼び出され、C2DMメッセージが変数として渡されます。

これで、最初はスムーズに動作し、2回目は渡された変数は更新されません。これは常に最初に渡される変数です。私は何かが足りないのですか?

スニッパーは次のとおりです。

C2DM通知

Intent notificationIntent = new Intent(context, BMBPad.class);
notificationIntent.putExtra("seqid", message);              
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

これは、インテントによって呼び出されたアクティビティの変数を読み取る方法です。

extra = this.getIntent().getExtras();
seqidi = extra.getString("seqid");

なぜそれが起こるのか誰か考えていますか?

4

3 に答える 3

0

onNewIntent() メソッドをオーバーライドし、次のように変数を取得します。

@Override
public void onNewIntent(Intent intent){
super.onNewIntent(intent);
seqid = intent.getStringExtra("seqid","");

}

アクティビティを再度開始すると onNewIntent() メソッドがトリガーされるためです。

于 2016-08-20T15:59:00.897 に答える
0

フラグを使用する必要がありますPendingIntent.FLAG_UPDATE_CURRENT

あなたの場合:

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

こちらもご覧ください: Android PendingIntent

于 2012-02-13T22:42:34.347 に答える