当前位置: 首页 > 知识库问答 >
问题:

Android通知挂起意向性附加为空

乐正嘉瑞
2023-03-14

我试图将通知中的信息发送到调用的活动,而我的活动中的信息为NULL。

通知的代码为:

private void showNotification() {
Intent resultIntent = new Intent(this, MainActivity.class);
if (D)
    Log.d(TAG, "Id: " + Id);
resultIntent.putExtra("ineedid", deviceId);

TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(MeterActivity.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,
    PendingIntent.FLAG_UPDATE_CURRENT);
// Bundle tmp = resultIntent.getExtras();
// if (tmp == null) {
// Log.d(TAG, "tmp bundle is null");
// } else {
// long id = tmp.getLong("ineedid", -1);
// Log.d(TAG, "tmp id : " + id);
// }
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
    BLEMessengerService.this)
    .setSmallIcon(R.drawable.ic_action_search)
    .setContentTitle("Event tracker")
    .setContentText("Events received").setOngoing(true)
    .setContentIntent(resultPendingIntent)
    .setWhen(System.currentTimeMillis());

int mId = R.string.service_notification_start_service;
mNM.notify(mId, mBuilder.getNotification());
}
Bundle extras = getIntent().getExtras();
if (extras != null) {
    long deviceID = getIntent().getLongExtra("ineedid",
        -1);
    if (ID == -1) {
    if (D)
        Log.i(TAG_D, "Wrong Id received.");
    finish();
    } else {
    device = dataSource.getDeviceByID(deviceID);
    if (D)
        Log.i(TAG_D, "Get the id.");
    }
} else {
    if (D)
    Log.d(TAG_D, "Bundle is null");
    finish();
}

共有1个答案

淳于玺
2023-03-14

在PendingIntent中,使用此标志PendingIntent.flag_update_current它对我有用

PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
 类似资料:
  • 我正在使用FCM进行消息推送,我正在将数据从通知发送到我正在打开的活动。 建筑通知规范: 在我的活动中,我得到了如下意图: 但问题是,每次Intent Extras在活动中为空时,我都检查了我在社区中找到的所有可能的原因,但每次响应都是相同的。 我试过下面提到的链接 Intent的额外值始终为空 Android通知PendingIntent Extras null 总是从通知意图android获取

  • 我的会发出一个,当用户单击它时启动我的。 这看起来是这样的: 如您所见,应该具有额外的,其值为放在中。 当我单击“现在”这个时,我总是得到作为的值 这是我在中获取值的方式: 日志: 总是有值,我做错了什么? 这样就解决了问题:https://stackoverflow.com/a/18049676/2180161 报价: http://developer.android.com/reference

  • 我正在使用Android TaskStackBuilder,以便在单击通知时使用预定义的堆栈创建通知。 在应用程序中,我有2项活动: 主活动发射器 活动B 在主活动中,我使用TaskStackBuilder和以下堆栈显示通知:[MainActivity(启动器意图),ActivityB] 当通知显示时,我拉下状态栏并单击通知,然后我看到预期的ActivityB,当单击back按钮时,我也看到预期的

  • 问题内容: 我正在运行一个基于Java Spring MVC的Web应用程序。它还基于Hybris平台。 现在,已经实现了有关身份验证和授权的基本功能。意味着我们确实有用于会话,有效的用户系统等的过滤器。 但是,我们目前还没有针对诸如XSS和其他可能的攻击之类的安全措施。XSS可能是最大的问题,因为它是最常见的攻击方式。 现在,我不知道……明智地采取什么步骤?我环顾四周,我发现存在像XSS-Fil

  • 有一个用户集合

  • 我使用我的应用程序设置了 Firebase 消息,但不幸的是,通知没有出现。 我正确地设置了Firebase,它连接到我的应用程序,我也发送了一些测试消息,在Firebase中它说已完成,但是我没有在我的手机上收到它们。 我的应用程序还没有上市,我正在通过Android Studio开发和测试它。 这是我的MyFirebaseInstanceIDService类 } 这里来了我的火库消息服务类: