Сообщения уведомлений FCM помогают поддерживать работоспособность служб приложений, но сообщения данных FCM этого не делают.

Я пытался сохранить службы переднего плана моего приложения в Oreo, просматривая свои службы приложений, так как я реализую сообщения данных FCM, но я обнаружил, что приложение становится неактивным, этого не происходит, когда я отправляю Уведомления FCM.

Это код, который я использую для перехвата сообщений с данными:

public void onMessageReceived(RemoteMessage remoteMessage) {
    super.onMessageReceived(remoteMessage);

    // Cordova Callback
    FCMPlugin.sendPushPayload(data);

    Intent resultIntent = new Intent(this , FCMPluginActivity.class);
    resultIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    PendingIntent resultPendingIntent = PendingIntent.getActivity(this,0 , resultIntent,PendingIntent.FLAG_ONE_SHOT);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        mBuilder = new Builder(this, "0");
    }else{
        mBuilder = new Builder(this);
    }

    mBuilder.setSmallIcon(getApplicationInfo().icon)
        .setContentTitle(title)
        .setContentText(messageBody)
        .setAutoCancel(false)
        .setContentIntent(resultPendingIntent);

    mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O){

        int importance = NotificationManager.IMPORTANCE_HIGH;
        NotificationChannel notificationChannel = new NotificationChannel("0", "Playback status", importance);
        notificationChannel.setShowBadge(false);

        assert mNotificationManager != null;
        mNotificationManager.createNotificationChannel(notificationChannel);
    }

    assert mNotificationManager != null;
    mNotificationManager.notify(0, mBuilder.build());
}

Что я могу сделать, чтобы сохранить службы переднего плана моего приложения в Oreo с помощью сообщений данных FCM?


person Moises Elias Valera    schedule 04.04.2019    source источник


Ответы (1)


После просмотра новостей Google об ограничениях использования батареи я успешно исправил это, смешав свой код со службой переднего плана кажется, что сообщений данных FCM было недостаточно, чтобы поддерживать мое приложение в рабочем состоянии.

person Moises Elias Valera    schedule 09.04.2019