Android FCM推送不在一加八中工作

Android FCM推送不在一加八中工作,android,push-notification,firebase-cloud-messaging,Android,Push Notification,Firebase Cloud Messaging,我尝试了以下解决方案,但它停止了推送通知的工作。我只是想阻止我的firebase服务被打瞌睡模式杀死。我尝试了不同的解决方案,比如发送高优先级的有效负载,但也没有成功 <service android:name=".backgroundmanager.BackgroundOperationsManagerService" android:enabled="true" android:process="com.hashedin.proces

我尝试了以下解决方案,但它停止了推送通知的工作。我只是想阻止我的firebase服务被打瞌睡模式杀死。我尝试了不同的解决方案,比如发送高优先级的有效负载,但也没有成功

 <service android:name=".backgroundmanager.BackgroundOperationsManagerService" android:enabled="true" android:process="com.hashedin.processname" />



 AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
            Intent intent = new Intent(this, AlarmBroadCastReceiver.class);
            PendingIntent pendingIntent = PendingIntent.getBroadcast(this,
            ALARM_REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT);
            if (Build.VERSION.SDK_INT >= 23) {
             alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, 30000, pendingIntent);
            }
            else if (Build.VERSION.SDK_INT >= 19) {
             alarmManager.setExact(AlarmManager.RTC_WAKEUP, 30000, pendingIntent);
            } else {
            alarmManager.set(AlarmManager.RTC_WAKEUP, 30000, pendingIntent);
            }

<receiver android:name=".backgroundmanager.alarmmanager.AlarmBroadCastReceiver"
android:enabled="true"
android:process="com.hashedin.processname"/>

public class AlarmBroadCastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        {
            PowerManager.WakeLock  screenWakeLock;
            Toast.makeText(context, "broadcast fired", Toast.LENGTH_LONG).show();
            PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
            screenWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP,
                        "myapp:ScreenLock tag from AlarmListener");
            screenWakeLock.acquire(10*60*1000L /*10 minutes*/);

            Intent service = new Intent(context, AppFireBaseMessagingService.class);
            startWakefulService(context, service);
            screenWakeLock.release();
        }

    }
}

当应用程序被打开时,它工作,但当它被关闭时,它不工作。

上述代码将阻止你的应用程序进入睡眠模式。确保正在推送通知负载中发送通知对象。您还可以从电池优化中删除应用程序

上述代码将阻止您的应用程序进入睡眠模式。确保正在推送通知负载中发送通知对象。此外,您还可以从电池优化中删除应用程序

确保您的应用程序被排除在电池优化之外: 转到设置,选择优化电池使用,选择全部,并确保您的应用未选中
此外,请转到设置/应用程序/您的应用程序/电池,并选中允许后台活动

确保您的应用程序被排除在电池优化之外: 转到设置,选择优化电池使用,选择全部,并确保您的应用未选中
另外,转到设置/App/Your App/battery并选中Allow background activity(允许后台活动)

现在有很多设备都有非常积极的电池节省器,这可以防止推送到您的应用,因为操作系统只是在后台杀死您的应用。除了谷歌,几乎所有制造商的设备都有这个问题。看看这个


我一直在处理同样的问题,我们所做的是检查设备上是否激活了任何电池优化,并向用户发送一条消息,让他知道推送体验将因此受到影响。

现在有很多设备都有非常积极的电池节省器,因为操作系统只是在后台杀死你的应用程序,所以阻止推送到你的应用程序。除了谷歌,几乎所有制造商的设备都有这个问题。看看这个


我一直在处理同样的问题,我们所做的是检查设备上是否激活了任何电池优化,并向用户发送一条消息,让他知道推送体验将因此受到影响。

OnePlus在这种情况下非常具有攻击性。你可以阅读更多关于它的内容。要解决此问题,您必须在设置中关闭应用程序的电池优化。在这种情况下,OnePlus非常具有攻击性。你可以阅读更多关于它的内容。若要解决此问题,您必须在“设置”中关闭应用程序的电池优化。这将在不同的进程中运行,因此最好将您的进程添加到前台服务I'的相同位置,i’我在同一进程中使用它,你能确认你的foregound服务是否正在运行吗?实际上我没有这个设备,在我的设备上它工作得很好,你能检查推送通知响应吗?这将在不同的进程中运行,因此最好将你的进程添加到前台服务的同一进程中i’,i’我在同一个进程中使用它,你能确认你的foregound服务是否正在运行吗?事实上,我没有这个设备,在我的设备上它工作得很好,你能检查推送通知响应吗?这是另一个资源,我发现关于你的问题非常有趣这是另一个资源,我发现关于你的问题非常有趣问题