2017-03-01 96 views
1

logged events如果在應用程序運行時沒有互聯網連接並且之後從未打開應用程序,會發生什麼情況?當應用程序關閉時,Firebase是否會同步記錄的事件?

當互聯網連接出現時,Firebase是否使用某種JobScheduler(以及其他iOS版本)來同步記錄的事件?

+2

不知道關於Android的實現,但在iOS應用程序通常不能做後臺任務很長一段時間被關閉後,所以我預計,如果應用程序是永遠不會再次打開 - iOS設備事件永遠丟失 – SergGr

+0

@SergGr的確是iOS上Firebase Analytics的行爲。你能把它作爲答案發布嗎? –

+0

@FrankvanPuffelen,我寧願等待一個知道它如何在Android上工作的人,因爲我沒有,也不能從iOS的一般知識中扣除。我認爲,鑑於單個接受答案的SO限制,最好是對兩個平臺都有單一響應 – SergGr

回答

0

在對問題的評論中,@SergGr和@Frank表示在iOS上,事件從未上傳。

在Android上,我的觀察是,事件記錄到處理緩衝和上傳的共享系統服務(不是應用程序的一部分)。因此,當沒有互聯網連接時記錄的事件稍後由服務上傳,無論原始應用程序是否仍在運行。

此行爲可以通過enabling analytics logging和查看adb窗口中的日誌輸出來觀察。系統服務的標籤是FA-SVC。

下面列出了摘錄日誌輸出的一些示例。我執行這些步驟爲我的測試:

  1. 轉身飛行模式
  2. 冉應用程序生成的事件背景
  3. 看跌的應用程序,從最近的任務列表刷卡殺死它
  4. 禁用飛行模式
  5. 等待FA-SVC運行並上傳事件(可能長達一小時)
  6. FA-SVC記錄的已上載事件數據的已檢查緩衝區,用於確認是否包含應用事件

// uploading seems occur about every hour 
03-02 07:40:42.397 V/FA-SVC (1889): Upload scheduled in approximately ms: 3599957 
// the service detects connectivity changes 
03-02 06:47:16.496 V/FA-SVC (1889): NetworkBroadcastReceiver received action: android.net.conn.CONNECTIVITY_CHANGE 
// this log marks the start of upload; followed by logs for each uploaded event 
03-02 07:40:41.757 V/FA-SVC (1889): Uploading data. app, uncompressed size, data: com.qbix.xxxx, 3450 
相關問題