在android中,如何将变量放入待处理的通知意图中?

在android中,如何将变量放入待处理的通知意图中?,android,Android,我正在制作一个聊天应用程序,我有两个主要活动。一个用于联系,第二个用于留言。当用户选择一个联系人时,我将该联系人信息放在intent中,然后开始下一个活动,并像这样从intent中获取该信息 Intent i = getIntent(); id = i.getIntExtra(EXTRA_ID, -1); reciever = i.getStringExtra(EXTRA_FRIEND); //reciever is friend form whi

我正在制作一个聊天应用程序,我有两个主要活动。一个用于联系,第二个用于留言。当用户选择一个联系人时,我将该联系人信息放在intent中,然后开始下一个活动,并像这样从intent中获取该信息

        Intent i = getIntent();
        id = i.getIntExtra(EXTRA_ID, -1);
        reciever = i.getStringExtra(EXTRA_FRIEND); //reciever is friend form which i am recieving
这很有效。现在我已经实现了通知,当通知到达时,我将id和receiver放在它的意图中,但是当我单击通知时,新的活动没有启动,而旧的活动重新启动。我对此进行了调试,并确认我正在
callNotification
方法中放入新值,但当活动开始时,这些值不是新值,而是旧值

public void callNotification(int id_given,String reciever_given,String msg)
    {
        Intent actionIntent = new Intent(this, ChatActivity.class);

        actionIntent.putExtra(EXTRA_ID,id_given);              //value inserted here
        actionIntent.putExtra(EXTRA_FRIEND,reciever_given);   //value inserted here

        PendingIntent contentIntent = PendingIntent.getActivity(this,1,actionIntent,0);

        Notification notification = new NotificationCompat.Builder(this, MainActivity.CHANNEL_ID)
                .setSmallIcon(R.drawable.ic_baseline_chat)
                .setContentText("New Message")
                .setContentText(reciever+": "+msg)
                .setPriority(NotificationCompat.PRIORITY_HIGH)
                .setCategory(NotificationCompat.CATEGORY_MESSAGE)
                .setContentIntent(contentIntent)
                .setAutoCancel(true)
                .build();
        notificationManagerCompat.notify(1,notification);
    }

因此,我想知道是否有一种特殊的方法可以将值放入待处理的通知意图中?

,我想通过您的
actionIntent
设置标志
flag\u ACTIVITY\u NEW\u TASK

Intent actionIntent = new Intent(this, ChatActivity.class);
actionIntent.putExtra(EXTRA_ID,id_given);              //value inserted here
actionIntent.putExtra(EXTRA_FRIEND,reciever_given);   //value inserted here
actionIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
PendingIntent contentIntent = PendingIntent.getActivity(this,1,actionIntent,0)

callNotification
中,我必须使用PendingEvent.flag\u UPDATE\u CURRENT标志 而不是像这样的0


PendingEvent contentIntent=PendingEvent.getActivity(this,1,actionIntent,PendingEvent.FLAG_UPDATE_CURRENT)

您是如何读取ChatActivity中的值的?我尝试了您的解决方案,它也起了作用。非常感谢。