Android Oreo 电池优化导致 FCM 延迟

And*_*nik 5 android firebase-cloud-messaging android-8.0-oreo

我已经实现了 FCM,就像 if 的文档所说:

我有这样的服务 public class TCMessagingService extends FirebaseMessagingService

我已经在清单中声明了它,如下所示:

<service android:name=".services.TCMessagingService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
</service>
Run Code Online (Sandbox Code Playgroud)

我使用 SDK 级别 25 进行定位和编译,我的 firebase 版本是 10.2.1。

现在的问题是,在 Android 8.0 上,有时我收到推送通知时会出现巨大的延迟。几分钟后就会出现。但情况并非总是如此,有时事情会像预期的那样进行,推送通知来得很快。

我尝试将 FCM 版本更新到最新版本,但这没有帮助。

但是,当我在设置中关闭应用程序的电池优化时,一切正常。但这不是解决方案。我该怎么做才能使 FCM 在 Android 8.0 上按预期工作?

And*_*nik 2

事实上我找到了解决方案。

为了修复 Android 8 推送通知的延迟,您需要设置最小compileSdkVersion 25

classpath 'com.google.gms:google-services:3.1.0' 
Run Code Online (Sandbox Code Playgroud)

在项目级别的 gradle 文件中。

这解决了这个问题,希望它可以帮助别人