Ich habe folgendes Manifest -GcmListenerService onMessageReceived nur aufgerufen, wenn App im Vordergrund ist
<service
android:name=".RegistrationIntentService"
android:exported="false" />
<service
android:name=".TestGcmListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.example.test" />
</intent-filter>
</service>
<service
android:name=".RegistrationIDListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID" />
</intent-filter>
</service>
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.example.test" />
</intent-filter>
</receiver>
Und nach onMessageReceived
Methode -
@Override
public void onMessageReceived(String from, Bundle data) {
ObjectMapper objectMapper = new ObjectMapper();
Message message;
try {
message = objectMapper.readValue(String.valueOf(data.get("message")), Message.class);
MessageNotification.notify(this, message, 1);
} catch (IOException e) {
e.printStackTrace();
}
}
Was ist passiert, onMessageReceived
nur aufgerufen wird, wenn App im Vordergrund steht. Andernfalls wird es nicht aufgerufen und die Benachrichtigung wird nicht angezeigt. Wenn ich die App öffne, werden alle Benachrichtigungen gleichzeitig angezeigt.
Nicht GcmListenereService
Gerät aufwachen, wenn gesperrt und die Arbeit machen? Wie löst man das?