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

如何通过点击推送通知来了解应用程序是否已启动

东深
2023-03-14

我想知道是否有标志和参数可以通过单击通知托盘中的推送通知来告诉我用户是否启动了活动/应用程序。

我在 C2DM 接收器中的代码.java

Context context = getApplicationContext();

        PackageManager manager = context.getPackageManager();
        Intent notificationIntent = manager
                .getLaunchIntentForPackage(packageName);
        notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
        **notificationIntent.putExtra("fromRemote", true);**

        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
                notificationIntent, 0);

        NotificationManager notificationManager = (NotificationManager) context
                .getSystemService(Context.NOTIFICATION_SERVICE);
        Notification notification = new Notification();
        notification.icon = R.drawable.icon;
        notification.tickerText = message;
        notification.number = badge;
        notification.when = System.currentTimeMillis();
        notification.flags |= Notification.FLAG_AUTO_CANCEL;
        notification.defaults = Notification.DEFAULT_ALL;
        notification.setLatestEventInfo(context, "Draw Something", message,
                pendingIntent);
        notification.contentIntent = pendingIntent;
        notificationManager.notify(0, notification);

我试着设定

notificationIntent.putExtra("fromRemote", true);

但当该应用程序启动时,其意图中没有额外的内容。

我的mainactivity的onCreate函数中的代码

Bundle extras = getIntent().getExtras();
    if (extras != null) {
        print("onCreate - bundle has extras");
        for (String key: extras.keySet())
        {
          Log.v ("mytag", "MainActivity onCreate key =" + key);
        }
    }
    else {
        Log.v ("mytag", "onCreate - bundle has NO extras");
    }

我得到的输出是onCreate - bundle没有额外的内容。所以多余的部分没有通过。

那么还有其他方法吗?在iOS中很容易

共有1个答案

徐昕
2023-03-14

只需发布一个答案,以便访问此页面的人获得解决方案。

在创建启动应用程序的意图时,需要使用<code>putExtra(ID_KEY,ID)检索传递的id整数。

传递的额外值可以是任何东西,布尔值,字符串等。

来源-https://stackoverflow.com/a/7358692/3036759

 类似资料:
  • 关于这个主题有很多stackoverflow线程,但是我仍然没有找到一个好的解决方案。 如果应用程序不在后台,我可以在调用中检查,查看是否从通知中打开。 如果应用程序在后台,所有帖子都建议使用并检查应用程序状态。但正如我所做的实验(也正如这个API的名称所暗示的那样),当收到通知时会调用这个方法,而不是点击。 所以问题是,如果应用程序启动后后台运行,并且您知道从收到通知(此时不会触发),您如何知道

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

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

  • 我的应用程序发出通知。通过点击通知,需要启动app或将其带到前台。通知的意图如下: 在我的应用程序中,我想确定它是通过通知点击启动的还是显示在前面的,所以我在那里使用了putExtra。然后在MainActivity的onResume中检查意图数据。这工作很好,是应用程序启动的通知点击。 做这件事的正确方法是什么?

  • 让我的应用程序收到5个远程通知。每当我点击单个通知时,所有5个通知都消失了,我们需要完整地显示其他4个通知,直到它们点击。但主要问题是所有其他通知都是为了其他目的,而不是为了相同的目的。因此,我们需要显示所有通知,直到从通知托盘中单击它们。 我们还需要根据此更新徽章计数。有什么方法来处理远程消息推送时,应用程序不运行(被杀)?您能否建议使用目标c处理远程推送通知的更好方法? 谢啦

  • 问题内容: 关于此主题,有很多stackoverflow线程,但是我仍然 没有找到一个好的解决方案。 如果该应用程序不在后台,则可以签 launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey]入 application:didFinishLaunchingWithOptions:呼叫以查看是否已从 通知中打开该应用程序。 如果应用