Android - 发送带有ID的通知

时间:2013-06-06 14:56:56

标签: android notifications

请原谅我的英语,我是法国人:

我有一个关于Android通知的问题...... 我的应用程序上有一个收件箱,当用户收到新的通知后会通知用户。 当他点击通知时,我想用正确的对话打开正确的活动,所以我要传递一个ID。

我做了很多搜索,但我找不到...... 你能帮帮我吗?

这是我的代码:

        NotificationCompat.Builder mBuilder =
            new NotificationCompat.Builder(context)
            .setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle(title)
            .setAutoCancel(true)
            .setContentText(text);

    // Creates an explicit intent for an Activity in your app
    Intent resultIntent = new Intent(context, LandingActivity.class);

    // The stack builder object will contain an artificial back stack for the
    // started Activity.
    // This ensures that navigating backward from the Activity leads out of
    // your application to the Home screen.
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
    // Adds the back stack for the Intent (but not the Intent itself)
    stackBuilder.addParentStack(MainActivity.class);
    // Adds the Intent that starts the Activity to the top of the stack
    stackBuilder.addNextIntent(resultIntent);

    PendingIntent resultPendingIntent =
            stackBuilder.getPendingIntent(
                0,
                PendingIntent.FLAG_CANCEL_CURRENT
            );
    mBuilder.setContentIntent(resultPendingIntent);
    NotificationManager mNotificationManager =
        (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    // mId allows you to update the notification later on.
    mNotificationManager.notify(0, mBuilder.build());

感谢。

2 个答案:

答案 0 :(得分:1)

在这种情况下,您可以在启动应用的Intent中保存对话的ID。你可以使用额外的东西来做到这一点:

resultIntent.putExtra("conversationID", "234553");

然后,在您的MainActivity中,您将处理用户点击您的通知的情况:

Bundle extras = getIntent().getExtras();
if (extras != null) {
    String value = extras.getString("conversationID");
    //Display conversation
}

答案 1 :(得分:0)

我不知道我的问题是否正确:如果您想根据收到的内容开始不同的活动,您必须为这些案例制定不同的意图。

如果您始终要打开LandingActivity并将数据传递给它,请将它们作为额外内容添加到您的Intent中,请参阅How do I pass data between Activities in Android application?