锁屏时收不到通知

Posted

技术标签:

【中文标题】锁屏时收不到通知【英文标题】:I can't receive notifications when screen is lock 【发布时间】:2019-06-13 21:47:53 【问题描述】:

我正在使用 Firebase 发送推送通知。当我将应用程序最小化并且屏幕锁定和 3G 数据网络以及 90% 的电池电量时,我无法收到通知。我需要在屏幕锁定时接收通知。

我当时在日志中记录了这一点以锁定屏幕。

2019-06-13 16:40:35.901 2372-9542/? D/MC_BatteryStatsData: operate removing wakelock wake:com.exampleapp/.FCMListenerService

这是针对 Moto C android 版本 7。

我尝试将此权限添加到清单文件中。

<uses-permission android:name="android.permission.WAKE_LOCK"/>

已禁用电池保护程序。它在菜单Settings -&gt; Battery 中。

这是我的FCMInstanceIDListenerService.java

public class FCMInstanceIDListenerService extends FirebaseInstanceIdService 

    private static final String TAG = "MyInstanceIDLS";

    @Override
    public void onTokenRefresh() 
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
        MetodosRepo.setPreference(getBaseContext(), Globals.DEVICE_TOKEN, refreshedToken);
    


还有FMCListenerService.java

public class FCMListenerService extends FirebaseMessagingService 

    @Override
    public void onMessageReceived(RemoteMessage message) 
        Log.e(_TAG, "onMessageReceived");
    

我希望在屏幕锁定时收到通知。º

【问题讨论】:

没有任何解释,到第二天都可以正常工作。 Firebase 服务可能有问题。 【参考方案1】:

从 Android 8.0 开始,他们添加了 background execution limit,因此当您的应用程序在后台时,您不会收到推送通知。

我想建议实现一个JobScheduler,它将连接到您的服务器以查看是否有任何待处理的通知并相应地创建通知警报。这是一个关于如何implement your JobScheduler 的示例项目。

但是,Android 会处理推送通知,我认为您会在 3-5 分钟后收到通知(当服务处于前台时几乎不会立即收到通知)。

【讨论】:

我在电池电量达到 97% 时看到了这一点,它开始工作又好又快。 D/PowerManagerNotifier: onWakeLockReleased: flags=1, tag="wake:com.example.FCMListenerService", packageName=com.example, ownerUid=10226, ownerPid=9380, workSource=null

以上是关于锁屏时收不到通知的主要内容,如果未能解决你的问题,请参考以下文章

手机锁屏后有时收不到微信通知,有时又能收到是怎么回事?

窗口默认全屏时如何短时间显示通知栏?

背水一战 Windows 10 (113) - 锁屏: 将 Application 的 Badge 通知和 Tile 通知发送到锁屏, 将 secondary tile 的 Badge 通知和 Til

如何在xamarin android中启用浮动通知和锁屏通知(Java或Kotlin都可以)

锁屏ios上的本地通知

小米mui11,设置锁屏状态下的通知信息隐藏教程