diff options
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 27 |
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; } } |