Lazy initialize the choreographer

Bug: 187177407
Test: Manual
Change-Id: I7c593c96335d1bfafd682647b231ec1f3d8030d5
This commit is contained in:
Winson Chung
2021-05-06 11:52:33 -07:00
parent 208f294d4e
commit a8b62357eb

View File

@@ -49,7 +49,7 @@ public class FrameProtoTracer<P, S extends P, T extends P, R>
private final TraceBuffer<P, S, T> mBuffer;
private final File mTraceFile;
private final ProtoTraceParams<P, S, T, R> mParams;
private final Choreographer mChoreographer;
private Choreographer mChoreographer;
private final Queue<T> mPool = new LinkedList<>();
private final ArrayList<ProtoTraceable<R>> mTraceables = new ArrayList<>();
private final ArrayList<ProtoTraceable<R>> mTmpTraceables = new ArrayList<>();
@@ -94,7 +94,6 @@ public class FrameProtoTracer<P, S extends P, T extends P, R>
}
});
mTraceFile = params.getTraceFile();
mChoreographer = Choreographer.getMainThreadInstance();
}
public void start() {
@@ -140,6 +139,9 @@ public class FrameProtoTracer<P, S extends P, T extends P, R>
}
// Schedule an update on the next frame
if (mChoreographer == null) {
mChoreographer = Choreographer.getMainThreadInstance();
}
mChoreographer.postFrameCallback(this);
mFrameScheduled = true;
}