複数の通知トレイから同じ活動を叩くそれぞれが異なるデータを持っています

Kartik Bhatさん:

私は複数の通知トレイから同じ活性を開く必要があり、各通知は、アクティビティに異なるデータをもたらします

適用しようとしたlaunchModeとしてSingleTopSingleTaskも異なって設定してみましたACTIVITY_FLAGS

私がクリックした場合、サーバーは任意の通知に、同じ活動に6つの通知を返された場合例えば、それはすべてのよりモバイルに非常に最初の通知から来た情報と活動を開きます

マニフェストからのコードのワンピース

<activity android:launchMode="singleTop" android:name=".activity.EditAssuranceActivity" />

通知受信アクティビティからのコードの一部(打つEditAssuranceActivity)

if (targetActivity.equals("events")) {
    intent = new Intent(this, ViewEventActivity.class);
    intent.putExtra("page_title", Message);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
} else if (targetActivity.equals("assurances")) {
    intent = new Intent(this, EditAssuranceActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    intent.putExtra("page_title", Message);
}
else {
    intent = new Intent(this, MainActivity.class);
}
    intent.putExtra("_id", parameter_id.get("post_id"));

    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,
    PendingIntent.FLAG_ONE_SHOT);
Kartik Bhatさん:

私は私が渡しています「requestCode」の値に設定した後に予想される解決策を得たPendingIntent.getActivity(this, 0 /* Request code */, intent,PendingIntent.FLAG_ONE_SHOT);いくつかのランダムな番号の代わりに、0にします。

各通知に同一の活性をクリックした後、特定の通知によってもたらされる値で開きますので、サーバーのトラバースから、この同じコードが、それぞれの時間「requestCode」を介してさまざまな通知は異なる乱数を取得します。

前のコード

PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,PendingIntent.FLAG_ONE_SHOT);

変更されたコード

Random random1 = new Random();
int rand1 = random1.nextInt(1000);
PendingIntent pendingIntent = PendingIntent.getActivity(this, rand1 /* Request code */, intent,PendingIntent.FLAG_ONE_SHOT);

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=228744&siteId=1