使用 app 在後臺處理訊息或將其殺死

當應用程式處於後臺(終止程序)和前臺(活動)時,Firebase 會以不同方式處理通知。

當你的應用程式在後臺時,通知訊息將顯示在系統托盤中,並且不會呼叫 onMessageReceived。對於具有資料有效負載的通知訊息,通知訊息顯示在系統托盤中,並且可以從使用者點選通知時啟動的意圖中檢索通知訊息中包括的資料。 [ 1 ]

如果應用程式在後臺,則服務將預設觸發通知中的 titlebody,如上所述,onMessageReceived 方法將不會觸發。相反,點選將從 Manifest.xml 開啟 activity,標記為:

<intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>

從這一點開始,你可以在這個活動中獲得你的知識 6:

if (getIntent() != null && getIntent().getExtras() != null) {
      String customString = (String) getIntent().getExtras().get("myStringData");
      Integer customInteger = (Integer) getIntent().getExtras().get("myIntData");
}

在這種情況下,設定圖示和圖示背景顏色可以在 Manifest.xml [ 2 ] 內完成 :

<meta-data
        android:name="com.google.firebase.messaging.default_notification_icon"
        android:resource="@drawable/your_drawable_icon" />

<meta-data
        android:name="com.google.firebase.messaging.default_notification_color"
        android:resource="@color/your_color" />

來源 1: FCM 後臺處理

原始碼 2: FCM github 儲存庫