Mensagens na nuvem do Firebase não recebidas quando o aplicativo em segundo plano

Atualizei recentemente meu aplicativo para enviar mensagens porFCM e funciona muito bem quando o aplicativo é executado no Jelly Bean. O problema é que não, caso sejaPirulito e o aplicativo está nofundo.

Eu li odocumentação e afirmou que, quando a carga útil for uma mensagem de dados, ela será tratada poronMessageReceived (). Estou enviando uma carga útil de dados,não é uma notificação, e é tratado corretamente desde que seja JellyBean. Para o Lollipop, ele lida apenas com a mensagem se o aplicativo estiver em primeiro plano. Caso contrário, nada acontece.

É assim que o início do meu FirebaseMessagingService se parece:

public class FirebaseBroadcastReceiverService extends FirebaseMessagingService {
    private final String TAG = FirebaseBroadcastReceiverService.class.getName();

    @Override
    public void onMessageReceived(RemoteMessage message){
        Log.i(TAG, "A message is received");
        String from = message.getFrom();
        Map<String, String> data = message.getData();
        .....
    }
}

O manifesto:

<application
    android:name=".controller.application.AppResources"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher_shadow"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@android:style/Theme.Black.NoTitleBar">

   <service
        android:name=".model.firebase.FirebaseListenerService">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
        </intent-filter>
    </service>
    <service android:name=".model.firebase.FirebaseBroadcastReceiverService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
    .......
</application>

E a carga útil:

{ 
    "data": {
        "test": "test"
    },
    "to" : "MY FCM REGISTRATION ID"
}

Que é enviado via POST parahttps://fcm.googleapis.com/fcm/send com os cabeçalhos de autorização e do tipo de conteúdo.

Talvez eu tenha lido todos os outros threads de SO relacionados a isso, mas não consegui encontrar uma resposta e também não há rastros de log no Android Monitor. Alguém tem uma dica sobre isso?

questionAnswers(3)

yourAnswerToTheQuestion