我正在使用FCM进行消息推送,我正在将数据从通知发送到我正在打开的活动。
建筑通知规范:
private void handleNotification(RemoteMessage remoteMessage) {
String notTitle = remoteMessage.getNotification().getTitle();
String notBody = remoteMessage.getNotification().getBody();
Intent resultIntent = new Intent(this, HomeActivity.class);
resultIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
resultIntent.putExtra("pushNotClick", "yes");
resultIntent.putExtra("pushNotHead", ""+notTitle);
PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
mBuilder.setSmallIcon(R.drawable.fb_icon);
mBuilder.setColor(getResources().getColor(R.color.colorPrimary));
mBuilder.setContentTitle(notBody)
.setContentText(notTitle)
.setAutoCancel(true)
.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
int importance = NotificationManager.IMPORTANCE_HIGH;
NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "NOTIFICATION_CHANNEL_NAME", importance);
notificationChannel.enableLights(true);
assert mNotificationManager != null;
mBuilder.setSmallIcon(R.mipmap.icon_not);
mBuilder.setChannelId(NOTIFICATION_CHANNEL_ID);
mNotificationManager.createNotificationChannel(notificationChannel);
}
assert mNotificationManager != null;
mNotificationManager.notify((int) System.currentTimeMillis() /* Request Code */, mBuilder.build());
}
在我的活动中,我得到了如下意图:
String notState = getIntent().getStringExtra("pushNotClick");
String notHead = getIntent().getStringExtra("pushNotHead");
但问题是,每次Intent Extras在活动中为空时,我都检查了我在社区中找到的所有可能的原因,但每次响应都是相同的。
我试过下面提到的链接
Intent的额外值始终为空
Android通知PendingIntent Extras null
总是从通知意图android获取数据null
我不确定我哪里做错了。
你要在onCreate登记吗?如果是这样,请查看onNewIntent。
您是否尝试过检查Remote teMessage数据栏?类似于这样:
// Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) {
Log.d(TAG, "Message data payload: " + remoteMessage.getData());
if (/* Check if data needs to be processed by long running job */ true) {
// For long-running tasks (10 seconds or more) use WorkManager.
scheduleJob();
} else {
// Handle message within 10 seconds
handleNow();
}
}
我甚至在做了很多调试之后,都找不到问题的原因。最后,我改变了向活动发送意向附加信息的方式。现在我正在使用bundle发送数据,它的工作方式很有魅力。这是一种迂回的方式,不是问题的答案,所以我不会接受它作为一个公认的答案。
我试图将通知中的信息发送到调用的活动,而我的活动中的信息为NULL。 通知的代码为:
我的会发出一个,当用户单击它时启动我的。 这看起来是这样的: 如您所见,应该具有额外的,其值为放在中。 当我单击“现在”这个时,我总是得到作为的值 这是我在中获取值的方式: 日志: 总是有值,我做错了什么? 这样就解决了问题:https://stackoverflow.com/a/18049676/2180161 报价: http://developer.android.com/reference
我正在创建一个应用程序,它包含3个活动,比如说,A,B和c。活动A是主活动,它在应用程序打开时启动。 使用startActivityForResult(intent,1)将活动A称为活动B;活动B返回一个成功捕获的结果,在活动a的onActivityResult中,我使用startActivityForResult(intent2,2)启动活动C; 这是我的活动A的onActivityResult
创建从到的OneToMany关系
问题内容: 我今天在go代码中遇到了奇怪的行为:当我追加到in循环中,然后尝试根据循环的结果创建new时,最后一个重写了previous 。 在这个特殊的例子这意味着 ,和切片的最后一个元素都没有,和分别,但是......始终! 第二个示例- 行为符合预期。 链接至play.golang:https : //play.golang.org/p/INADVS3Ats 经过一番阅读,挖掘和实验后,我发
下面是片段。请注意,我已经恢复到以前的提交,因此丢失了最近的修改,但请查看我编写的代码,然后才注意到始终等于0() 以下是当检测到活动后按: 以下是NoteActivity接收结果调用的方式。 null 我在我的项目上浪费了很多重要的时间,只是想知道是什么使resultCode和requestCode的值丢失了我发送的值。 任何帮助和指导都将不胜感激。非常感谢!