【问题标题】:How maintain GCM push message in Android, its replaced by new one如何在Android中维护GCM推送消息,将其替换为新消息
【发布时间】:2015-07-23 13:10:46
【问题描述】:

我的 Android 应用程序收到带有一些文本消息的推送通知。如果我点击推送,它会将我重定向到带有最新推送消息(意图消息)的所需活动,但我想用相应的推送消息显示我想要的活动。 例如,如果我收到 10 个推送通知并点击第 3 个通知,我的代码会将我重定向到具有第 10 个推送通知消息的指定活动,但我想显示第 3 个意图推送通知的消息。

我知道 PendingIntent.FLAG_UPDATE_CURRENT 替换意图消息,我怎样才能用相应的消息而不是最后的消息重定向?

我尝试了以下方法:

Intent intent = new Intent(this, TestActivity2.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
        | Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.putExtra("uid", uid);

PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0,
        intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
        getApplicationContext());
Notification notification = mBuilder
        .setSmallIcon(R.drawable.ic_launcher)
        .setTicker(textMsg)
        .setWhen(0)
        .setAutoCancel(true)
        .setContentTitle(textMsg)
        .setStyle(
                new NotificationCompat.BigTextStyle().bigText(textMsg))
        .setContentIntent(resultPendingIntent).setContentText(textMsg)
        .build();

NotificationManager notificationManager = (NotificationManager) getApplicationContext()
        .getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify((int) System.currentTimeMillis(),
        notification);

【问题讨论】:

    标签: android android-intent google-cloud-messaging android-notifications


    【解决方案1】:

    改用FLAG_ONE_SHOT,并将getActivity 中的第二个参数设置为0。This 的答案会很清楚。

    【讨论】:

      【解决方案2】:

      您应该为不同的消息更改pendingIntend 的内容。 这是 PendingIntent 文档中的 sn-p。 “PendingIntent 本身只是对系统维护的令牌的引用,该令牌描述了用于检索它的原始数据。这意味着,即使其拥有的应用程序的进程被杀死,PendingIntent 本身仍可用于已给定的其他进程如果创建应用程序稍后重新检索相同类型的 PendingIntent(相同的操作、相同的 Intent 操作、数据、类别和组件以及相同的标志),它将收到一个表示相同令牌的 PendingIntent(如果仍然有效),因此可以调用 cancel() 将其删除。”

      简单来说...尝试为每个 pendingIntent 传递不同的 id(类似于 currentEpochTime)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多