Firebase通知を使用し、FirebaseMessagingService
を拡張するクラスを作成しました。このクラスでは、メッセージ本体を取得し、ペイロードに従って通知を表示するメソッドを作成しました。Firebaseサービスがバックグラウンドで実行中に新しい通知を作成できません
私の問題は、この通知は自分のアプリケーションが動作している場合にのみ機能しますが、オフの場合は作成したカスタマイズされたものではなくFirebaseのデフォルトの通知を受け取ります。
私のサービスクラスは次のとおりです。
public class FirebaseNotifications extends FirebaseMessagingService {
String lastChange = "";
String currentChange = "";
@Override
public void onCreate() {
super.onCreate();
Log.i("firebase", "it started");
SharedPreferences settings = getSharedPreferences(PREFS, 0);
lastChange = settings.getString("lastFbInput", "");
Log.i("lastChange", lastChange);
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
currentChange = remoteMessage.getNotification().getBody();
Log.i("from: ", remoteMessage.getFrom() + "");
if(remoteMessage.getData().size()>0)
Log.i("payload: ", remoteMessage.getData().toString());
if(remoteMessage.getNotification() != null)
Log.i("message body: ", remoteMessage.getNotification().getBody());
if(!lastChange.equals("")) {
Log.i("equals", "1");
if (!lastChange.equals(currentChange)) {
showNotification(remoteMessage.getNotification().getBody());
Log.i("equals", "2");
}
}
else
{
showNotification(remoteMessage.getNotification().getBody());
Log.i("equals", "3");
}
}
私の問題は、サービスだけでも、showNotification
方法を実行していないということです。誰かがそれに対する解決策を提案できますか?