App 在前台、後台運行時通知正常顯示,但裝置進入待機(螢幕熄滅、CPU 休眠)後,通知不再彈出,直到喚醒螢幕才一次性湧現。
Android 6.0+ 引入 Doze 模式 及 App Standby Buckets,系統為省電會限制非高優先級應用的網路存取、AlarmManager、JobScheduler 等。若通知依賴普通 `PendingIntent` 或輪詢推送,極易在深度休眠時被延遲或丟棄。
// FCM 高優先級 payload 範例
{
"to": "/topics/all",
"priority": "high",
"notification": {
"title": "新訊息",
"body": "您有一筆待處理項目",
"channel_id": "high_importance_channel"
}
}
使用 `adb shell dumpsys deviceidle force-idle` 強制進入 Doze 模式,觀察通知是否即時送達;搭配 `logcat -s FCM` 追蹤訊息接收流程。