单击通知时将数据发送到 activity?

Send data to activity when clicked on notification?

我在单击通知时打开 activity。通知是从服务 class 激活的。我想将数据发送到从通知打开的新 activity 我正在使用 intent1.putExtra("lable",lable);但在新的 activity 中,它给了我空指针异常。

 intent1 = new Intent(this.getApplicationContext(), simplestop.class);
            intent1.putExtra("lable",lable);

PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent1, 0); 
Notification mNotify  = new Notification.Builder(this)
            .setContentTitle("title" + "!")
            .setContentText("Click me!")
            .setSmallIcon(R.drawable.ic_launcher_background)
                            .setContentIntent(pIntent)
            .setAutoCancel(true)
            .build();

我使用此代码将数据发送到 activity

Intent intent = new Intent(this, MainActivity.class)
                            .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
                    intent.putExtra("from", "notification");
                    pIntent = PendingIntent.getActivity(this, 3, intent,
                            PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT);

可能是您在设置 flag=0 时遇到问题或尝试将请求 code=0 更改为任何其他整数。

正在发送数据。

Intent intent = new Intent(getApplicationContext(), simplestop.class);
intent.putExtra("lable", lable);

PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

final RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.yourLayoutOfNotification);
contentView.setOnClickPendingIntent(R.id.IdOfTheItemYouClick, contentIntent);

尝试在您的 simplestop.class

中检索类似这样的数据
if (getIntent().getDataString() == null) {
   String lable = Objects.requireNonNull(getIntent().getExtras()).getString("lable");
 }

而且我认为您需要在 simplestop.class 处致电 onNewIntent 在那里检索数据。

如果检索到数据,则尝试创建 Log

Log.d("Data", lable);

并告诉 Log 显示的是什么。