Пожалуйста, проверьте ссылку вопроса. Android подтвердил, что это была ошибка в O, которая, видимо, уже исправлена. Я еще не подтвердил это, но они приложили видео
ужно отключить анимацию перехода активности для всех экранов в моем приложении. Предыдущее решение отлично работало на всех версиях Android:
<style name="base_theme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowAnimationStyle">@null</item>
</style>
... но для Android 8 «Oreo» вызывает мигание черного экрана при каждом переходе (движение вперед или назад). То есть анимации по-прежнему нет, но очень раздражает мигание (вероятность 90%, ~ 20-30 миллисекунд, весь экран).
Согласно моим «исследованиям»:
не зависит от содержания активности и воспроизводится с пустыми действияминет никакой фоновой работы, которая могла бы замедлить процесс переходаIntent.FLAG_ACTIVITY_NO_ANIMATION также мигаетoverridePendingTransition (0,0) тоже не работаетЕдинственное решение, которое я смог найти:
Определить пустую анимацию перехода
<?xml version="1.0" encoding="utf-8"?>
<set />
и применить его к каждому виду деятельности в приложении (создать и завершить)
overridePendingTransition(R.anim.animation_activity_none, R.anim.animation_activity_none);
Вопрос:
Это какие-то новые ограничения для Oreo (то есть функция), или ошибка платформы, или, возможно, проблема приложения? Есть ли другие решения?
[ОБНОВИТЬ]
Еще одна находка. Убедитесь, что вы вызываете Activity finish () и overridePendingTransition () в главном потоке! В противном случае происходит скачок потока, и иногда overridePendingTransition не применяется.
[ОБНОВИТЬ]
Google подтвердил, что это ошибка в Android 8.0, предположительно исправленная в 8.1. Таким образом, исправление «пустой анимации» длится годами, пока minSdkVersion == 27.