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

通知单击:活动已打开

暨嘉
2023-03-14

我有一个带有通知的应用程序,如果我单击它们,就会打开某个活动。我想要的是,如果我点击通知,活动已经打开,它不是重新开始,但只是出现在前面。

event_notification = new Notification(R.drawable.icon,
            mContext.getString(R.string.event_notif_message), System.currentTimeMillis()); 
Intent notificationIntent = new Intent(mContext, EventListActivity.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
sendNotification(event_notification, notificationIntent, mContext.getString(R.string.event_notif_title),
                body, Utils.PA_NOTIFICATIONS_ID);

我可以用标志来管理它吗?还是我应该在SharedPreferences中存储一个变量来检查它是否已打开?

谢谢!

共有1个答案

赫连秦迟
2023-03-14

您需要将您正在启动的活动LaunchMode属性设置为singletop。当活动已经位于任务堆栈的顶部时,这将导致传入的意图传递到现有实例,而不是启动新实例。

这是在清单中通过将android:launchmode=“singletop”添加 元素来实现的。若要访问最新的意图(如果您对可能已传入的任何数据感兴趣),请在活动中重写onNewIntent()

 类似资料:
  • 我正在工作的应用程序中,我被要求显示通知。对于通知,我使用的是FireBase云消息(FCM)。我能够得到通知,当应用程序在后台。 2.)MyFirebaseInstanceIDService 这是我在MyFirebaseMessagingService类中为onMessageReceived()方法编写的代码示例。

  • 我有两个活动Main activity和ReceivedMessageActivity。以及一个后台服务,用于从中获取上下文并传递给SMSReceiver,SMSReceiver扩展BroadcastReceiver以接收sms。当收到短信时,SMSReceiver会创建通知。我希望当我点击通知时,如果应用程序未运行ReceivedMessageActivity,则打开该通知;如果应用程序正在运行

  • 我已经尝试了所有的方法,但它不适合我。我想打开或恢复应用程序,无论屏幕打开,同时单击通知。 我使用了以下方法:

  • 我正在使用fcm控制台向所有安装了我的应用程序的设备发送消息,通知没有任何额外的负载,只有通知消息。 我想知道是否有一种简单的方法可以知道活动是否从FCM通知点击打开。 有一种解决方案是扩展FirebaseMessagingService并自己创建通知。 我想知道是否有其他解决方案,而不扩展服务或向通知传递额外内容。 是否传递了任何额外信息,用于从通知单击打开活动?

  • firebase工作得很好,在状态栏上推送通知,但我的挑战是当通知被点击时,我希望它带我到我的自定义活动而不是默认的启动器,我该怎么做呢? 这是我想在通知计时时打开的自定义活动。通知来自Firebase cloud Messaging。 } 这是侦听来自FireBase的通知的服务。