0

Firebaseを設定すると、Firebaseコンソールで作成された通知が表示されます。クリックすると、アプリケーションでマニフェストに宣言されたfirstactivityが開きます。Androidの通知は常に開いていますMainActivity

firstactivityを親として持つ特定のdetailactivityを開きたいとします。

私のマニフェスト:

... 
    <activity 
     android:parentActivityName=".views.main.MainActivity" 
     android:name=".views.detail.DetailActivity" 
     android:screenOrientation="portrait"> 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value=".views.main.MainActivity" /> 
    </activity> 
.... 

マイカスタムFirebaseMessagingService:

Intent i = new Intent(this, DetailActivity.class); 
    Intent intent2 = new Intent(this, MainActivity.class); 
    i.putExtra(ProfileDescriptionActivity.USER_ID, 14); 
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); 
    stackBuilder.addParentStack(ProfileDescriptionActivity.class); 
    stackBuilder.addNextIntentWithParentStack(intent2); 
    stackBuilder.addNextIntent(i); 
PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 

    NotificationCompat.Builder builder = new NotificationCompat.Builder(this) 
      .setAutoCancel(true) 
      .setDefaults(Notification.DEFAULT_SOUND) 
      .setContentTitle(title) 
      .setContentText(message) 
      .setSmallIcon(R.drawable.ic_notification) 
      .setContentIntent(pendingIntent); 

    NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
    manager.notify(0, builder.build()); 

アプリケーションを閉じたときに、私は通知を受け取った場合、それが正しく、通知トレイに通知が表示されます。しかし、私がopenをクリックすると、上に戻ると、firstactivityが表示されます。

アプリケーションが開いているときに通知が届きました。通知センターには、必要なアクティビティが正しく表示される空白のビューが表示されました。

どうしたのですか?ありがとう。

+0

プッシュメッセージの種類(データまたは通知)に間違いがあります。サーバーがアプリケーションに送信するペイロードを送信します。 – BMacedo

答えて

0

FCM経由でアプリケーションを自動的に開くには、onMessageReceived()メソッドを常に呼び出すことを保証するdata-messageを使用する必要があります。

例えば、あなたのペイロードは次のようになります。このメッセージを送信テストするために

{ 
    "to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...", 
    "notification" : { 
     "body" : "great match!", 
     "title" : "Portugal vs. Denmark", 
     "icon" : "myicon" 
    }, 
    "data" : { 
     "Nick" : "Mario", 
     "Room" : "PortugalVSDenmark" 
    } 
    } 

は、あなたがそのようなthisとして任意のオンラインFCMテスターを使用することができます。

関連する問題