Android 如何删除从FirebasePerformance开始的跟踪

Android 如何删除从FirebasePerformance开始的跟踪,android,performance,firebase,memory-leaks,firebase-performance,Android,Performance,Firebase,Memory Leaks,Firebase Performance,我们希望有一个系统,其中有几种类型的跟踪(在enum中声明),并且我们假设每种类型的跟踪在跟踪的所有生命周期中都是这种类型的跟踪。我们使用这样的方法: public class FirebasePerfAnalytics { private ConcurrentHashMap<TraceType, Trace> traces = new ConcurrentHashMap<>(); public Trace startTrace(TraceType trace

我们希望有一个系统,其中有几种类型的跟踪(在
enum
中声明),并且我们假设每种类型的跟踪在跟踪的所有生命周期中都是这种类型的跟踪。我们使用这样的方法:

public class FirebasePerfAnalytics {

  private ConcurrentHashMap<TraceType, Trace> traces = new ConcurrentHashMap<>();

  public Trace startTrace(TraceType traceType) {
    Trace trace = traces.get(traceType);
    if (trace == null) {
      trace = FirebasePerformance.getInstance().newTrace(traceType.name());
      Trace oldTrace = traces.put(traceType, trace);
      if (oldTrace == null) {
        trace.start();
      }
    }
    return trace;
  }

  public void stopTrace(TraceType traceType) {
    Trace trace = traces.remove(traceType);
    if (trace != null) {
      trace.stop();
    }
  }

  public enum TraceType {
   // some types
  }
}
公共类FirebasePerfAnalytics{
私有ConcurrentHashMap跟踪=新ConcurrentHashMap();
公共跟踪startTrace(TraceType TraceType){
Trace Trace=traces.get(traceType);
if(trace==null){
trace=FirebasePerformance.getInstance().newTrace(traceType.name());
Trace oldTrace=traces.put(traceType,Trace);
if(oldTrace==null){
trace.start();
}
}
返回轨迹;
}
公共void stopTrace(TraceType TraceType){
Trace Trace=traces.remove(traceType);
如果(跟踪!=null){
trace.stop();
}
}
公共枚举跟踪类型{
//某些类型
}
}
有些情况下,跟踪将被打开但从未关闭(因为我们要测试的实际任务没有正确完成)。我们不想跟踪此类错误案例,但我们不想泄漏这些小型
跟踪对象


有没有一种方法可以在不调用
Trace.stop()
方法的情况下将它们从Firebase性能跟踪列表中删除?

只需清除对跟踪对象的所有引用,并让它被垃圾回收即可。在调用stop()之前,跟踪实际上不会做任何事情。

那么,FirebasePerformance库中没有存储指向已打开跟踪的链接的位置了吗?