Запись текста в WebView из socker’а, считываемого в фоновом режиме

#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"
 

Результат почти хороший. Представление поворачивается. Но не адаптируется к размеру, нравится, когда он перерисовывается.