Как узнать, запущена ли деятельность без перехода?

У меня есть прецедент, когда я в основном запускаю операцию с переходом, но это не тот случай, когда вы открываете ее из навигационного ящика.

Чтобы обеспечить плавный переход, у меня есть Transition.TransitionListener в котором я запускаю некоторое обновление пользовательского интерфейса, когда переход выполняется.

Поэтому у меня есть что-то вроде этого:

 public class SomeActivity extends Activity { public void onCreate(Bundle savedInstanceState){ // ... if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { Transition sharedElementEnterTransition = getWindow().getSharedElementEnterTransition(); sharedElementEnterTransition.addListener(new Transition.TransitionListener() { // ... @Override public void onTransitionEnd(Transition transition) { doSomeUiUpdating(); } }); } else { // Pre-Lollipop doSomeUiUpdating(); } } } 

Это хорошо работает при запуске Activity с анимацией, но как узнать, была ли запущена Activity без перехода, чтобы я мог вызвать doSomeUiUpdating() ?

Я уверен, что должен быть простой метод в Activity , Window , Transition или где-то, что я забыл. Я не хочу ретранслировать на вызывающую активность, чтобы установить некоторый пакет, который говорит, показывает ли анимация или нет.

Solutions Collecting From Web of "Как узнать, запущена ли деятельность без перехода?"

Вы можете попробовать onTransitionStart TransitionListener установить несколько логических isAnimationStarted .

 public class SomeActivity extends Activity { private boolean isAnimationStarted = false; public void onCreate(Bundle savedInstanceState) { // ... if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { Transition sharedElementEnterTransition = getWindow().getSharedElementEnterTransition(); sharedElementEnterTransition.addListener(new Transition.TransitionListener() { // ... @Override public void onTransitionEnd(Transition transition) { doSomeUiUpdating(); } @Override public void onTransitionStarted(Transition transition) { isAnimationStarted = true; } }); } } public void onStart() { if (!isAnimationStarted) { doSomeUiUpdating(); } } }