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

Android-通过通知点击确定应用程序是否已启动或显示在前面

公冶鸣
2023-03-14

我的应用程序发出通知。通过点击通知,需要启动app或将其带到前台。通知的意图如下:

    Intent launch_intent = new Intent("android.intent.action.MAIN");
    launch_intent.setComponent(new ComponentName("com.example.helloworld","com.example.helloworld.MainActivity"));
    launch_intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
    launch_intent.addCategory(Intent.CATEGORY_LAUNCHER);
    launch_intent.putExtra("some_data", "value");

在我的应用程序中,我想确定它是通过通知点击启动的还是显示在前面的,所以我在那里使用了putExtra。然后在MainActivity的onResume中检查意图数据。这工作很好,是应用程序启动的通知点击。

做这件事的正确方法是什么?

共有1个答案

岳浩宕
2023-03-14

重写活动中的onNewIntent()并检查其中的值。如果希望以后对getIntent()调用返回此新意图,可以调用setIntent()并传递新意图。

 类似资料:
  • 我想知道是否有标志和参数可以通过单击通知托盘中的推送通知来告诉我用户是否启动了活动/应用程序。 我在 C2DM 接收器中的代码.java 我试着设定 但当该应用程序启动时,其意图中没有额外的内容。 我的mainactivity的onCreate函数中的代码 我得到的输出是onCreate - bundle没有额外的内容。所以多余的部分没有通过。 那么还有其他方法吗?在iOS中很容易

  • 我想知道是否有办法知道一个应用程序(可以在后台关闭或打开)是否已经启动,只需单击: 通知(在通知中心)? 还是跳板上的应用程序图标? 谢谢

  • 我明白在Android(8.0)启动器图标上的通知徽章会在收到通知时自动显示。不幸的是,一旦他们打开或取消通知,徽章将被删除。我想知道的是,应用程序本身是否可以直接告诉系统显示徽章?我想显示它时,他们有未读消息内的应用程序。 我知道Android的一些第三方启动器和制造商变体确实提供了额外的徽章功能,然而,我指的是香草Android和股票启动器。 非常感谢。

  • 一个应用程序正在iPhone上运行,用户点击home按钮一次,应用程序就会进入后台 如何通过点击本地通知而不是应用程序图标来确定该应用程序处于活动状态。

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

  • 是否可以知道应用程序是否从消息推送中启动/打开? 我想发射活动可以在这里捕捉到: 然而,当应用程序处于后台时,如何从推送通知中检测到它被打开?