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

带FCM的Android推送通知

薛焱
2023-03-14

以下是我的通知案例:当通知到达时,应用程序可能是前台,后台,或关闭

2.后台:当用户点击通知时,应用程序应显示在前面,并显示主要活动

3.App关闭时:当用户点击通知时,App应打开,并显示主要活动。

当我用intent.flag_activity_single_top设置intent和用PendingIntent.flag_one_shot设置PendingIntent时。它按预期工作,但当用户点击notification时,它不会调用Main Activity的onCreate方法。

private void showNotification() {

        Intent intent = new Intent(this, DashboardActivity.class);
        intent.putExtra(AppConstants.SCREEN, screen);
        intent.putExtra(AppConstants.USER_ID, user_id);
        intent.putExtra(AppConstants.TABLE_ID, table_id);
        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
            PendingIntent.FLAG_ONE_SHOT);

    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
            .setSmallIcon(getNotificationIcon())
            .setContentTitle(getResources().getString(R.string.app_name))
            .setContentText(message)
            .setAutoCancel(true)
            .setSound(defaultSoundUri)
            .setContentIntent(pendingIntent);

    NotificationManager notificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    notificationManager.notify(0, notificationBuilder.build());
    }

如果您考虑了上面的代码,那么需要在用户点击Notification时从MainActivity(DashboardActivity)中执行它。

注意:当应用程序是前台/后台时,不应该关闭和打开新的。它必须在现有的应用程序中更新。

希望你能理解我的处境。提前道谢。

共有1个答案

那存
2023-03-14

当用户点击带有“intent.flag_activity_single_top”意图的通知时,将不会调用意图的onCreate方法。当用户点击notification时,它将调用一个方法,如下所述:

@Override
protected void onNewIntent(Intent intent) {}

感谢阅读此问题:)

 类似资料:
  • 我是新来的< code>Android Studio,所以我不明白。我是使用< code>FCM的< code >推送通知的新手,但我没有得到解决方案。我在运行时遇到了这种错误。 我的应用程序/Gradle 这是我的项目等级 我已经更新了android studio<code>SDK</code>我这边什么都没有了,但我不知道我哪里出错了。所以请在这方面帮助我。

  • 我正在尝试用C#中的FCM在android设备上发送推送通知。Net,但我收到了“InvalidRegistration”错误消息。 我也用过邮递员和R-Client的方法,但仍然得到同样的错误。 {"multicast_id":8671409506357877791,"成功": 0,"失败": 1,"canonical_ids": 0,"结果":[{"错误":"无效注册"}]}

  • 问题内容: 我正在努力显示从FCM通知控制台发送到设备的推送通知。我可以看到设备正在接收通知,因为我可以看到发送“ test8”的消息 但是,无论我的应用程序位于前台还是后台都没有关系,但我不会显示通知。 我已在info.plist中添加了“必需的后台模式- 应用程序下载内容以响应推送通知”。我的证书是正确的,并且生成令牌没有问题。我的应用程序正在接收通知,但未显示它们。 我一直在尝试自己研究和解

  • 我正在rails 5中编写一个Api Rest,使用gem'fcm'发送通知。我已经在android应用程序中配置了firebase,我可以从firebase控制台成功发送通知,但从rails api我无法在设备中接收通知,这是我的代码: 这是我的rails控制器: 我从邮递员执行这是执行控制器的路线: http://localhost:3000/acciones/enviar?here 将设备令

  • 我有个问题。 我在推送通知中有一个深度链接的逻辑。 这是FCM现在的json: 是否有一种方法可以继续使用这个json模型并在后台接收调用?

  • 问题内容: 我正在开发一个应用程序,在该应用程序中,我需要实现推送通知。谁能建议我应该如何实施推送通知?如果可以为我提供一个很好的教程,那就太好了! 谢谢。 问题答案: //在应用程序启动时调用 //清单文件中的更改 // ReceiverC2DM.java ..... //服务器端…新测试应用 ServerSimulator.java