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

后续(即。在第一次之后)通知挂起意图在应用程序最初关闭时不启动活动

梁丘琛
2023-03-14

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

以新内容打开活动,第一次之后收到的每个PendingEvent通知都以类似的方式工作

.

场景2-应用程序已关闭(未运行),在通知中接收PendingEvent,单击通知时,

使用新内容打开活动,第一次之后收到的每个PendingEvent通知都不以类似方式工作(不启动活动)

.

挂起的意图代码:Intent nIntent=new Intent(getApplication(),ChatActivity)。阶级);

    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个答案

瞿文柏
2023-03-14

我在意图中添加了一个虚拟动作,如下所示:

例如nIntent.setAction("foo")

阙阳夏
2023-03-14

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

 类似资料:
  • 我在kubernetes集群上尝试使用Helm Chart进行spring boot微服务部署。但我注意到一个奇怪的问题,我的spring boot应用程序启动后却立即关闭 这是我的头盔模板-

  • 我有一个通知服务正在运行,它将为用户创建一个通知,如果用户单击该通知,它将打开一个活动以显示消息,我用于创建通知的方法是: MessageNotificationActivity正在使用“android:style/theme.dialog”使其看起来像一个对话框。现在的情况是,当我单击通知时,一切都很顺利,活动就像一个后台没有任何内容的对话框一样打开,但如果应用程序暂停并处于后台,当我单击通知时

  • 我正在我的应用程序中实施谷歌云消息服务(GCM)。我使用gcmIntent服务创建了一个挂起的意图并打开了一个不是启动活动的活动。当应用程序打开时,它工作正常。但当应用程序关闭时,它会打开启动活动而不是所需的活动。我尝试了我能找到的所有解决方案,但都不起作用。我挣扎了一个多星期。任何帮助都将不胜感激。 我的代码 我得到下面的堆栈跟踪

  • 当用户在我的通知中单击一个按钮时,我正试图打开,而该应用程序仅在后台运行并提供服务。单击按钮时,这些行在类中被触发: 我已经检查过了,这些行被触发了,所以对按钮的点击做出反应没有问题,但是不会打开。 有什么建议吗?为什么这对我不起作用,我怎么能让它起作用? 我被要求提供更多的代码,因此在我的

  • 问题内容: 我想在重新启动后通知工作正常。我提醒开始,但一次。如果我随后更改了手机上的日期,则没有通知。只有再次运行该应用程序,它们才会运行。也就是说,在不启动应用程序的情况下重新启动电话后,启动电话时,通知仅显示一次。 我在 MainActivity中 设置了通知时间: MyAlarmService (onCreate): MyReceiver: AndroidManifest(MyReceiv