应用关闭时 Firebase 是否同步记录的事件?
Does Firebase synchronise logged events when app is closed?
如果在应用 运行 期间没有互联网连接并且此后应用从未打开过,logged events 会怎样?
当出现互联网连接时,Firebase 是否使用某种 JobScheduler(以及 iOS 的其他替代方法)来同步记录的事件?
在对该问题的评论中,@SergGr 和@Frank 表示在 iOS 上从未上传该事件。
在 Android,我的观察是事件被记录到处理缓冲和上传的共享系统服务(不是应用程序的一部分)。因此,无论原始应用程序是否仍在 运行ning,服务稍后都会上传没有互联网连接时记录的事件。
此行为可以通过 enabling analytics logging 观察并查看 adb
window 中的日志输出。系统服务的标签是 FA-SVC。
下面包含一些摘录的日志输出示例。我为我的测试执行了这些步骤:
- 已开启飞行模式
- 运行 应用生成事件
- 将应用程序置于后台,从最近的任务列表中滑动以将其杀死
- 禁用飞行模式
- 等待 FA-SVC 运行 并上传事件(这可能长达一个小时)
- 检查了 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
如果在应用 运行 期间没有互联网连接并且此后应用从未打开过,logged events 会怎样?
当出现互联网连接时,Firebase 是否使用某种 JobScheduler(以及 iOS 的其他替代方法)来同步记录的事件?
在对该问题的评论中,@SergGr 和@Frank 表示在 iOS 上从未上传该事件。
在 Android,我的观察是事件被记录到处理缓冲和上传的共享系统服务(不是应用程序的一部分)。因此,无论原始应用程序是否仍在 运行ning,服务稍后都会上传没有互联网连接时记录的事件。
此行为可以通过 enabling analytics logging 观察并查看 adb
window 中的日志输出。系统服务的标签是 FA-SVC。
下面包含一些摘录的日志输出示例。我为我的测试执行了这些步骤:
- 已开启飞行模式
- 运行 应用生成事件
- 将应用程序置于后台,从最近的任务列表中滑动以将其杀死
- 禁用飞行模式
- 等待 FA-SVC 运行 并上传事件(这可能长达一个小时)
- 检查了 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