summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/view/ViewRootImpl.java27
1 files changed, 16 insertions, 11 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index c3321eadd5b0..65a075788ebc 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -2103,20 +2103,25 @@ public final class ViewRootImpl implements ViewParent,
private void profileRendering(boolean enabled) {
if (mProfileRendering) {
mRenderProfilingEnabled = enabled;
- if (mRenderProfiler == null) {
- mRenderProfiler = new Choreographer.FrameCallback() {
- @Override
- public void doFrame(long frameTimeNanos) {
- mDirty.set(0, 0, mWidth, mHeight);
- scheduleTraversals();
- if (mRenderProfilingEnabled) {
- mChoreographer.postFrameCallback(mRenderProfiler);
+
+ if (mRenderProfiler != null) {
+ mChoreographer.removeFrameCallback(mRenderProfiler);
+ }
+ if (mRenderProfilingEnabled) {
+ if (mRenderProfiler == null) {
+ mRenderProfiler = new Choreographer.FrameCallback() {
+ @Override
+ public void doFrame(long frameTimeNanos) {
+ mDirty.set(0, 0, mWidth, mHeight);
+ scheduleTraversals();
+ if (mRenderProfilingEnabled) {
+ mChoreographer.postFrameCallback(mRenderProfiler);
+ }
}
- }
- };
+ };
+ }
mChoreographer.postFrameCallback(mRenderProfiler);
} else {
- mChoreographer.removeFrameCallback(mRenderProfiler);
mRenderProfiler = null;
}
}