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

使用一加3 android oreo 8.0的FirebaseMessagingService在后台无法工作

向弘懿
2023-03-14

Firebase onMessageReceived从未在应用程序未运行时调用,并从最近的应用程序列表中删除。我正在使用Firebase并从服务器向我的应用程序发送数据负载通知,我尝试使用JobScheduler每隔1分钟启动一次MyFirebaseMessagingService以防系统关闭我的服务,但这种方法在一加3上对我不起作用。我知道android增加了后台服务的限制来优化电池使用,但是这个限制对FCM服务有影响吗?

{
"notification": {
    "title": "Hello",
    "body": "Notification",
    "badge": 1,
    "icon": "app_icon",
    "color": "#ffffff",
    "sound": "default",
    "clickAction": "home",
    "tag": "parent_ccid_6"
},
"message": {
    "priority": "high",
    "type": "daily_tips",
    "data": {
        "parent_ccid": "parent_ccid_6",
        "id": "2",
        "sound": "default"
    }
},

}

这是我的服务清单

 <service
        android:name=".util.FCM.MyFirebaseMessagingService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        </intent-filter>
    </service>

共有1个答案

郑嘉悦
2023-03-14

以上牛轧糖必须使用通知通道

样品

        int notifyID = 1;
        String CHANNEL_ID = "my_channel_01";
         // The id of the channel.
        CharSequence name = "channel ram";
         // The user-visible name of the channel.
        String groupId = "Building654651";
        CharSequence groupName = "BuilgingHub123";
        int importance = 0;
            importance = NotificationManager.IMPORTANCE_HIGH;
            NotificationChannel mChannel = new NotificationChannel(CHANNEL_ID, name, importance);
 Notification notification = new Notification.Builder(this)
                .setContentTitle(getString(R.string.app_name))
                .setContentText(messageBody)
                .setSmallIcon(R.drawable.ic_notifi).setColor(Color.parseColor("#FFA23B"))
                .setChannelId(CHANNEL_ID)
                .build();
  NotificationManager mNotificationManager =
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        mNotificationManager.createNotificationChannelGroup(new NotificationChannelGroup(groupId, groupName));
        mNotificationManager.createNotificationChannel(mChannel);
            mNotificationManager.notify(notifyID, notification);
 类似资料:
  • 我尝试使用Firebase为Android提供推送通知。但我面临着非常奇怪的问题。当我在前台发送推送时,一切正常。当我在后台发送推送时(我只发送数据),一切都正常,直到我回到前台,然后回到后台。 当我的应用程序第二次转到后台时,不会调用我的FirebaseMessagingService。另外,请注意,我使用的是Android Emulator。代码: AndroidManifest。xml: 服

  • 有什么方法可以获得它吗?因为我需要在应用程序内的对话框窗口中显示它。推送通知不仅仅是文本和标题,它对用户来说不仅仅是信息,它还会起到一定的作用。 在中接收通知标题、正文和有效负载: 正在从内部的附加程序捕获有效负载

  • 我是proguard的新手,我有一个问题我不知道如何解决。我能够使用proguard创建一个签名的应用程序apk,并将其安装到我的设备上,但当我试图启动应用程序时,我得到: 我试图使用-keep类来排除类以及活动/应用程序子类的混淆,是的,在android清单中,应用程序类的路径是完整的包路径。我已经反编译了签名的apk,实际上java类被放置在正确的路径中。

  • 我刚刚在我的Android应用程序中安装了Firebase,以启用推送通知。我通过从Firebase控制台向所有运行该应用程序的设备发送推送通知来确认它正在工作。现在,我正在尝试获取FCM令牌(应用程序实例的唯一标识符),以便可以向特定设备发送消息。然而,当我在扩展FirebaseMessagingService的类中重写onNewToken()函数时,该方法不会被重写。根据文件,它应该可以工作。

  • 7.1 ABP后台服务 - 后台作业和后台工人 7.1.1 简介 ABP提供了后台作业和后台工人,来执行应用程序中的后台线程的某些任务。 7.1.2 后台作业 由于各种各样的原因,你需要后台作业以队列和持久化的方式来排队执行某些任务。 例如: 用户等待执行一个长时任务。例如:某个用户按下了报表按钮生成一个需要长时间等待的报表。你添加这个工作到队列中,当报表生成完毕后,发送报表结果到该用户的邮箱。

  • 问题内容: 在我的数据库中,我可以说有5000多个用户,现在,如果我在主父节点中使用来获得多少人, 我知道getChildrenCount会返回一个带有父级内部子级数量的long,但这会如何影响性能? 几个月前,我制作了一个应用程序来管理用户,该应用程序比通过Web控制台更有效地管理用户,因为页面变得静态并且用户不断增长。 现在,我想知道是否每当我请求用户数量时,该应用程序就会循环遍历5000+个