У меня есть прецедент, в котором я в основном запускаю операцию с переходом, но это не тот случай, когда вы открываете ее из навигационного ящика.Как узнать, запущена ли деятельность без перехода?
Чтобы сохранить плавный переход, у меня есть 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();
}
}
}
Это хорошо работает при запуске активность с анимацией, но как я могу знать, если активность была начата без перехода, так что я могу назвать doSomeUiUpdating()
?
Я уверен, что должен быть простой метод в Activity
, Window
, Transition
или где-то, что я упускается. Я не хочу ретранслировать на вызывающую активность, чтобы установить некоторый пакет, который говорит, показывает ли анимация или нет.
я буду взять на себя ту же логику, как у вас есть (если (android.os.Build.VERSION.SDK_INT> = android.os.Build.VERSION_CODES.LOLLIPOP) {doSomeUiUpdating(); ....) перед кодом вы должны начать деятельность – Tasos
, а переходы были добавлены в API 19 (KITKAT), поэтому вам нужно проверить до этого не LOLLIPOP - https://www.youtube.com/watch?v=K3yMV5am-Xo – Tasos
Дело в том, что, как я пытаюсь сказать в первой строке, активность (даже на Lollipop +) чаще всего начинается с перехода, но не тогда, когда пользователь запускает активность из навигационного ящика. –