#android #android-9.0-pie #android-night-mode
#Android #android-9.0-pie #android-ночной режим
Вопрос:
У меня есть требование, чтобы при нажатии переключателя мне нужно было инвертировать режим с темного на светлый и наоборот соответственно. Но суть в том, что я не хочу завершать действие и перезапускать его, поскольку я не хочу, чтобы вспышка / мерцание активного отдыха были замечены пользователем. Следовательно, я использую Activity.this.recreate()
. Теперь это хорошо работает на всех уровнях API и телефонах, которые я проверил до сих пор. Но в Android Pie он показывает вид вспышки даже при использовании Activity.this.recreate()
Кто-нибудь, пожалуйста, предложите мне какой-нибудь способ решить проблему в Android Pie или какой-нибудь лучший способ решить мою проблему.
Комментарии:
1. Вы можете перезапустить свою деятельность в обычном
finish
режиме, а затем вызвать, а затем вызватьstartActivity()
overridePendingTransition()
и передать требуемую анимацию. например, (fade in, fade out)2. Это не помогает.
Ответ №1:
Да, вы правы, что он мигает в Android Pie (9.0), когда мы используем метод «воссоздать ()» для повторного запуска активности. Чтобы решить эту проблему, мы можем сделать, как показано ниже, я успешно протестировал ее с Android Pie (9.0) и удалил вспышку.
Используйте «Переопределение перехода (0,0)» и начните самостоятельную работу без использования метода «воссоздать ()».
Вот код:
var intent = Intent(this@MainActivity, MainActivity::class.java)
startActivity(intent)
overridePendingTransition(0,0)
Комментарии:
1. Этот ответ неверен, он сохраняет старое действие в фоновом режиме, поскольку
finish();
оно никогда не вызывается для текущего действия, что приведет к возврату проблемы «flash» после ее использования, возвращаясь к проблеме, указанной в вопросе.