/// <summary>To be called when the critical span is complete (i.e.</summary> /// <remarks> /// To be called when the critical span is complete (i.e. the /// animation is done animating). This can be called on any /// thread (even a different one from where the animation was /// taking place), but that's only a defensive implementation /// measure. It really makes no sense for you to call this on /// thread other than that where you created it. /// </remarks> /// <hide></hide> public virtual void finish() { android.os.StrictMode.ThreadSpanState state = mContainerState; lock (state) { if (mName == null) { return; } if (mPrev != null) { mPrev.mNext = mNext; } if (mNext != null) { mNext.mPrev = mPrev; } if (state.mActiveHead == this) { state.mActiveHead = mNext; } state.mActiveSize--; if (LOG_V) { android.util.Log.d(TAG, "Span finished=" + mName + "; size=" + state.mActiveSize); } this.mCreateMillis = -1; this.mName = null; this.mPrev = null; this.mNext = null; if (state.mFreeListSize < 5) { this.mNext = state.mFreeListHead; state.mFreeListHead = this; state.mFreeListSize++; } } }
protected internal Span() { mContainerState = null; }
private Span(android.os.StrictMode.ThreadSpanState threadState) { mContainerState = threadState; }