当app最初关闭时,后续(即AFTER FIrst)通知pendingintent不启动活动

时间:2015-02-14 00:27:58

标签: android notifications broadcastreceiver google-cloud-messaging android-pendingintent

场景1 - 应用程序已打开,在通知中接收pendingintent以及单击通知时

  

打开包含新内容的活动,每个待处理的通知   在第一次以类似的方式工作后收到

场景2 - 应用已关闭(未运行),在通知中接收pendingintent以及点击通知时

  

使用新内容打开活动,每个待处理的内容   在第一次收到通知后,通知不起作用   时尚(不启动活动)

待定意向守则:  Intent nIntent = new Intent(getApplication(),ChatActivity.class);

    nIntent.putExtra("chattingFrom", chattingToName);
    nIntent.putExtra("chattingToName", chattingFrom);
    nIntent.putExtra("chattingToDeviceID", chattingFromDeviceID);
    nIntent.putExtra("chattingFromDeviceID", chattingToDeviceID);

    NOTIFICATION_ID = NOTIFICATION_ID + 1;

    mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);

    PendingIntent contentIntent = PendingIntent.getActivity(this, NOTIFICATION_ID, nIntent, PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_ONE_SHOT);

    Uri sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.notify);

    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle("Chat App")
            .setStyle(new NotificationCompat.BigTextStyle().bigText("New message from " + chattingFrom + ": " + msg))
            .setContentText("New message from " + chattingFrom + ": " + msg)
            .setAutoCancel(true)
            .setTicker("New message from " + chattingFrom)
            .setSound(sound);

    mBuilder.setContentIntent(contentIntent);

    mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());

主要问题: 当用户单击通知(应用程序已关闭/未运行)时,将打开包含新内容(第一次单击)的活动,之后的每个通知都不起作用(后续单击)。

当应用程序打开时,一切正常,然后通知就会进入。

2 个答案:

答案 0 :(得分:1)

我认为你应该取出PendingIntent.FLAG_ONE_SHOT因为这会使PendingIntent只能使用一次。

答案 1 :(得分:0)

我在我的意图中添加了一个虚拟动作,见下文:

例如nIntent.setAction(“foo”)