Firebase 性能自定义跟踪 starting/stopping 问题

Firebase Performance custom trace starting/stopping problem

我想测量屏幕上的加载时间,这涉及多个 API 调用,因此除了 HTTP 跟踪之外还需要自定义跟踪。屏幕有一个分页的 recyclerview,所以我需要 运行 跟踪多次。但是,这是行不通的。我收到类似的错误 Trace 'Home_Loading' has already started, should not start again! 当我第二次尝试 运行 时,即使在调用 stop() 之后。例如,这段代码

        val startupTrace = FirebasePerformance.getInstance().newTrace("Home_Loading")
        startupTrace.start()
        startupTrace.stop()
        startupTrace.start()
        startupTrace.stop()

结果如下logcat

E/FirebasePerformance: Trace 'Home_Loading' has already started, should not start again!
E/FirebasePerformance: Trace 'Home_Loading' has already stopped, should not stop again!
D/FirebasePerformance: Logging trace metric - Home_Loading 0.0220ms

start/stop 方法不是同步的吗?还是不可能 运行 同一轨迹不止一次?

您不能多次启动和停止跟踪。一条轨迹只能有一个不同的起点和终点。如果您需要执行第二次跟踪,您将需要创建一个新的跟踪对象来启动和停止。