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

通知将应用程序带到前台,无需更改活动

柏麒
2023-03-14

我想创建一个通知,当它点击时,会将我的应用程序带到前台,但不会更改(重新加载或导航出)显示的最后一个活动。

我试过:

setContentIntent(PendingIntent.getActivity(context, 0, new Intent(context, MainActivity.class), Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT))

但在新的Android4.3中,应用程序被推到了前台,但它也启动了一个新的MainActivity实例,我不想要这个。

我希望我的应用程序将从上次显示的活动继续。
如何做到这一点?

共有3个答案

方博
2023-03-14

添加此“意图。FLAG_ACTIVITY_PREVIOUS_IS_TOP”而不是“意图。FLAG_ACTIVITY_BROUGHT_TO_FRONT”

这里解释

希望这有帮助。

卫甫
2023-03-14

对我来说,工作解决方案是:

    //Resume or restart the app (same as the launcher click)
val resultIntent = Intent(context, MyLauncherActivity::class.java)
resultIntent.addCategory(Intent.CATEGORY_LAUNCHER)
resultIntent.setAction(Intent.ACTION_MAIN)
resultIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
val pendingIntent = PendingIntent.getActivity(context, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT)
builder.setContentIntent(pendingIntent)  //builder is the notificationBuilder
皇甫树
2023-03-14

你永远不会设定意图。标记活动将活动带到前面。该标志由Android在将活动带到前台时设置。你设置它没有效果。

有几种方法可以满足你的需求。看看这个答案

 类似资料:
  • 我在我们的应用程序中有多个活动。其中一个活动是启动活动,这是主要的启动器活动。它启动并初始化几个类,这些类被整个应用程序使用并完成。 然后是用户大部分时间驻留的主要活动。如果应用程序关闭,则在创建通知时,这些类将被销毁,因此应用程序将给出错误(nullpointerexception)。 我们需要做的是如果应用程序关闭,则启动启动器活动,否则将主要活动放在前面。 我在这里尝试了多种解决方案。 解决

  • 我有以下代码,一旦我收到Firebase推送通知或FCM,我的Android应用程序就会出现在前台。 现在在MainActivity中,我使用了如下捆绑包: 我的代码在以下情况下正常工作: 当设备上接收到FCM时: 如果应用程序打开,则执行操作 如果应用程序在后台,即最小化,则应用程序打开并执行操作 如果应用程序被杀死,应用程序将打开并执行操作 如果应用程序被杀死并且手机被锁定,应用程序会在锁屏顶

  • 我正在处理FCM通知。当应用程序在后台时,我的通知工作正常,但当应用程序在前台时,我的通知无法接收。我几乎什么都试过了,但都不奏效。当应用程序处于前台时,不会收到通知。 manifest.xml: 代码(FirebaseMessagingService):

  • 我有一个播放视频的VideoActivity,我试图实现的是,当我单击home按钮时,我将显示一个通知,一旦我单击该通知,它将把VideoActivity实例带回到前面。 以下是我如何定义通知的意图: 但每次我点击通知时,就会创建一个新的视频活动。

  • 我使用firebase在iOS中实现推送通知,目标为C。我有方法,根据其描述,当应用程序处于后台且用户点击通知时,以及当应用程序处于前台时,都应该触发该方法。问题是它只能在后台工作(或者当应用程序没有运行时)。我是不是忘了什么?

  • 这是苹果公司设计的吗?或者我错过了一些我可以申请的设置?