请原谅我的英语,我是法国人:
我有一个关于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());
感谢。
答案 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?。