Ответ 1
Использовать оператор | для установки нескольких флагов
theIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION|Intent.FLAG_ACTIVITY_CLEAR_TOP);
У меня есть эта активность, в которой перечислены некоторые сведения, которые я предоставляю для кнопки обновления. То, как я его обновляю (возможно, не лучшим образом любыми способами), снова запускает деятельность снова и снова. Чтобы сделать задний стек работать так, как мне нужно, мне нужно передать флаг FLAG_ACTIVITY_CLEAR_TOP
в намерение, и он отлично работает. Но чтобы представить иллюзию, что информация обновляет информацию в рамках этой деятельности и не полностью перезапускает ее, мне также нужно добавить флаг FLAG_ACTIVITY_NO_ANIMATION
. До сих пор мне не удалось заставить эти два флага работать вместе. Я пробовал следующие методы:
theIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION+Intent.FLAG_ACTIVITY_CLEAR_TOP);
theIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION|Intent.FLAG_ACTIVITY_CLEAR_TOP);
`
theIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
theIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Очистить вершину работает правильно для всех из них, но анимация все еще существует. Любая помощь будет принята с благодарностью.
Использовать оператор | для установки нескольких флагов
theIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION|Intent.FLAG_ACTIVITY_CLEAR_TOP);
Используйте addFlags()
, чтобы добавить в Intent несколько флагов.
i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Вы можете попробовать использовать
overridePendingTransition(0,0);
сразу после вызова startActivity();
Для людей, которые могут делать Android-приложение в Kotlin
coolIntent.flags = Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_NEW_TASK