非常像標題所示,如果我有一個Android應用程序註冊FCM通知,並且該應用程序在後臺或尚未在一段時間內啓動並且令牌更改,那麼onTokenRefresh()
何時被調用?僅當應用程序運行時才調用FirebaseInstanceIdService onTokenRefresh()?
它會喚醒應用程序以致撥打電話onTokenRefresh()
,還是在下次啓動應用程序時纔會調用它?
感謝
非常像標題所示,如果我有一個Android應用程序註冊FCM通知,並且該應用程序在後臺或尚未在一段時間內啓動並且令牌更改,那麼onTokenRefresh()
何時被調用?僅當應用程序運行時才調用FirebaseInstanceIdService onTokenRefresh()?
它會喚醒應用程序以致撥打電話onTokenRefresh()
,還是在下次啓動應用程序時纔會調用它?
感謝
當onTokenRefresh()
被觸發已經包含在FirebaseInstanceIdService documentation事件:
當系統確定令牌需要刷新調用。應用程序應調用getToken()並將令牌發送給所有應用程序服務器。
這會不會非常頻繁地調用,它是需要密鑰輪換和處理實例ID的變化,由於:
- 應用程序刪除實例ID
- 應用程序是一個新的設備上還原
- 用戶卸載/重新安裝應用
- 用戶清除應用數據
該系統甚至會扼殺刷新以避免使用令牌更新過載應用程序服務器。
同樣如指定的那樣,FirebaseInstanceIdService類擴展了Service類,無論應用程序處於前景還是背景,該類都可以運行。
這裏是onTokenRefresh()
會調用。
因此,對於你的簡短答案是onTokenRefresh()
方法將觸發,無論你的應用程序在前臺還是後臺。
當用戶從gcm更新應用程序到fcm然後不打開app.Will消息傳遞給用戶或無法訪問時會發生什麼? –
@ronakPoriya當您提交消息時,將您的應用程序從GCM遷移到FCM不應有任何更改。 –
消息傳遞代碼已遷移到類MyFirebaseMessagingService.Since,因爲FirebaseInstanceIdService中的onTokenRefresh()未調用,這不起作用。我的理解是否正確? –