/** * This is called onResume. If an Activity is resuming and the transitions * haven't started yet, force the views to appear. This is likely to be * caused by the top Activity finishing before the transitions started. * In that case, we can finish any transition that was started, but we * should cancel any pending transition and just bring those Views visible. */ publicvoidforceViewsToAppear(){ if (!mIsReturning) { return; } if (!mIsReadyForTransition) { mIsReadyForTransition = true; final ViewGroup decor = getDecor(); if (decor != null && mViewsReadyListener != null) { mViewsReadyListener.removeListener(); mViewsReadyListener = null; } showViews(mTransitioningViews, true); setTransitioningViewsVisiblity(View.VISIBLE, true); mSharedElements.clear(); mAllSharedElementNames.clear(); mTransitioningViews.clear(); mIsReadyForTransition = true; viewsTransitionComplete(); sharedElementTransitionComplete(); } else { if (!mSharedElementTransitionStarted) { moveSharedElementsFromOverlay(); mSharedElementTransitionStarted = true; showViews(mSharedElements, true); mSharedElements.clear(); sharedElementTransitionComplete(); } if (!mIsViewsTransitionStarted) { mIsViewsTransitionStarted = true; showViews(mTransitioningViews, true); setTransitioningViewsVisiblity(View.VISIBLE, true); mTransitioningViews.clear(); viewsTransitionComplete(); } cancelPendingTransitions(); } mAreViewsReady = true; if (mResultReceiver != null) { mResultReceiver.send(MSG_CANCEL, null); mResultReceiver = null; } }