Appcompatdelegate.setDefaultnightmode (), полученный основной деятельностью только в первый раз?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Appcompatdelegate.setDefaultnightmode (), полученный основной деятельностью только в первый раз?

Сообщение Anonymous »

Запуск Android P , используя Androidx 1.0.0 (

Код: Выделить всё

minSdkVersion 17
). Из моего MainActivity я открываю свою предпочтения . Там я меняю тему пользовательского интерфейса, а также воссоздаю деятельность, чтобы выбрать изменения: < /p>

Код: Выделить всё

AppCompatDelegate.setDefaultNightMode(nightMode);
recreate();
< /code>

После обновления темы я возвращаюсь к MainActivity < /code>. Там тема успешно обновлена. Затем я снова открою предпочтения 
и изменяю тему снова .

Пока все хорошо! Тема не < /strong> обновлена, и она не будет обновляться, если вы повторяете шаги! Appcompatdelegate.setDefaultnightmode ( mode_night_yes , а затем воссоздать () . Тема обновляется!
[*] Вернуться к A. Тема обновляется!, а затем воссоздать () . Тема обновляется!
возвращение к A. Тема не обновлен и будет не , если шаги 3-6 повторяются! Реагировать на изменение темы: < /p>

Код: Выделить всё

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (...) {
recreate();
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
< /code>

Это работает, когда библиотека не реагирует на обновленную тему. В противном случае деятельность воссоздается дважды (возможно, больше при отладке), что убивает производительность и т. Д.: < /p>

D/MainActivity: onActivityResult(): instance 1
D/MainActivity: onResume(): instance 1
D/MainActivity: onPause(): instance 1
D/MainActivity: onDestroy(): instance 1

D/MainActivity: onCreate(): instance 2
D/MainActivity: onResume(): instance 2
D/MainActivity: onPause(): instance 2
D/MainActivity: onDestroy(): instance 2

D/MainActivity: onCreate(): instance 3
D/MainActivity: onResume(): instance 3
Q: Что происходит с setDefaultnightMode () API? И что еще более важно, как я могу успешно обновить все выполняемые действия без риска воссоздания их несколько раз?>

Подробнее здесь: https://stackoverflow.com/questions/533 ... y-the-firs
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»