应用关闭时,Firebase是否同步记录的事件?

时间:2017-03-01 17:44:14

标签: android ios firebase firebase-analytics

如果在应用运行时没有互联网连接且之后从未打开应用,那么logged events会发生什么?

当互联网连接出现时,Firebase是否使用某种JobScheduler(以及iOS的其他替代方案)来同步记录的事件?

1 个答案:

答案 0 :(得分:1)

在对该问题的评论中,@ SergGr和@Frank表示在iOS上,该活动永远不会上传。

在Android上,我的观察是事件被记录到处理缓冲和上传的共享系统服务(不是应用程序的一部分)。因此,服务稍后会上载没有互联网连接时记录的事件,无论原始应用程序是否仍在运行。

enabling analytics logging可以观察到此行为,并在adb窗口中查看日志输出。系统服务的标签是FA-SVC。

下面列出了摘录日志输出的一些示例。我为我的测试执行了这些步骤:

  1. 启用飞行模式
  2. 使应用程序生成事件
  3. 将应用程序置于后台,从最近的任务列表中刷过来将其杀死
  4. 禁用飞行模式
  5. 等待FA-SVC运行并上传事件(可能长达一小时)
  6. 审核了FA-SVC记录的上传事件数据的缓冲区,以确认是否包含了应用事件
  7. // 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