3

余分な整数を持つインテントを持つサービスからの通知を作成しています。何らかの理由で、これは思ったほど簡単ではありません。これは私がやっていることです:

Notification notification = new Notification(R.drawable.notification_icon, "Title", 0);
Intent relaunchIntent = new Intent(this, SomeClass.class);
relaunchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
relaunchIntent.putExtra("load", getId());
notification.setLatestEventInfo(this, "Title", "Tap here to open", PendingIntent.getActivity(this, 0, relaunchIntent, 0);
notificationManager.notify(1234, notification);

そして、SomeClass から、次のように読み取ります...

if(getIntent().getExtras() != null)
    load(getIntent().getExtras().getInt("load", -1));

getInt()奇妙なのは、メソッドから値を読み取るときに一貫性のない結果が得られることです。以前の通知で設定した値を取得することがあります。たとえば、エクストラを 4 に設定したときに 3 の値が得られます。これは非常に紛らわしく、奇妙であることはわかっています。そのため、誰かがこのようなことを経験したことがあるかどうか、また修正のために何をしたかを知りたいのです。それ。ありがとう!

4

1 に答える 1

5

PendingIntent.FLAG_UPDATE_CURRENTを呼び出すときに使用してみてくださいPendingIntent.getActivity。ドキュメントから:

これは、エクストラのみが変更されるインテントを作成している場合に使用できます。以前の PendingIntent を受け取ったエンティティは、明示的に与えられていなくても、新しいエクストラでそれを起動できることを気にしません。

私は自分でこの問題に遭遇し、この回答へのコメントから回答を見つけました。

于 2011-08-18T12:18:27.743 に答える