单击通知时将数据发送到 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
显示的是什么。
我在单击通知时打开 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
显示的是什么。