#android #sockets #post #webview #handler
#Android #сокеты #Публикация #webview #обработчик
Вопрос:
Я сделал игру на Android для 2 игроков, используя сокеты. Когда игрок поворачивает экран, я сохраняю сокеты в ViewModel, а затем восстанавливаю. Но если игрок поворачивает экран, когда ожидает другого игрока (поток чтения):
- Экран отображается прямо в onResume ()
- Когда чтение завершено, и я пытаюсь записать изменения на экране. Webview loadData игнорирует его. — Я пробовал с:
Handler handler = new Handler(Looper.getMainLooper()); handler.post(new Runnable() { @Override public void run() { ... } });
Не завершается сбоем… Не работает
— И с MutableLiveData<Object>
(недопустимо для фоновых операций)
Можете ли вы дать мне несколько советов ?…
Ответ №1:
Наконец, я не смог получить доступ к графическому пользовательскому интерфейсу из чтения в сокете из потока, созданного и запущенного методом onResume фрагмента. Он получил данные из сокета, достиг WebView, вызвал loadData … но не обновил WebView !. Итак … мое решение состояло в том, чтобы объявить действие НЕ ПОДЛЕЖАЩИМ УНИЧТОЖЕНИЮ, в манифесте, в теге activity, я установил атрибут:
android:configChanges="orientation|screenSize"
Результат почти хороший. Представление поворачивается. Но не адаптируется к размеру, нравится, когда он перерисовывается.