Intereting Posts
Конфликт Android с зависимым appcompat Запись видео с использованием MediaRecorder и FileOutputStream создает видеофайл, который нельзя воспроизвести Android получить размер экрана устарел? Как сохранить UID пользователя в базе данных firebase и сопоставить его с POJO Альтернатива для устаревших AudioManger.setStreamMute? Как создать потоковый видеоплеер для большого контента? Слушатель событий на клавиатуре в Android Не удалось запустить сервер adb.exe JQuery Autocomplete работает в Chrome, но не в android, используя телефонную развязку Android Studio 1.1, простая настройка теста junit Как предотвратить усечение текста моей закуски на Android? Где константа запроса (64206) для входа в систему, определенная в Facebook SDK Как вы скомпилируете проект Android в файл .apk в Eclipse без запуска эмулятора? Поменяйте пиксели MainTex с помощью других текстур с помощью поверхностного шейдера (Unity) Производительность Джексона JSON Parser

TextView.setText () с очень длинными строковыми блоками.

Есть ли способ обхода метода TextView для его текста? Из-за этого я пытаюсь установить очень длинную строку, и из-за этого она блокирует поток пользовательского интерфейса на 2-3 секунды. Поскольку я не могу получить доступ к TextView из другого потока, я полностью в тупике.

Изменить: В настоящее время я создаю строку внутри AsyncTask doInBackground () и вызываю только TextView.setText () внутри onPostExecute (который работает на uiThread). TextView помещается в ScrollView

У вас не должно быть проблем с загрузкой даже нескольких экранов. Если строка очень длинная, вы можете рассматривать ленивую загрузку содержимого в разделах.

Поскольку я не могу получить доступ к TextView из другого потока,

Вы можете использовать другой Thread и получать доступ к TextView . Не зная ваш код, трудно дать хороший пример, но вы можете использовать runOnUiThread

или

Вы можете использовать AsyncTask . Поступая таким образом, вы можете делать все, что вам нужно, в doInBackground() и устанавливать текст в onPostExecute()

Хотя, я не уверен, сколько времени ваша строка займет несколько секунд, чтобы загрузить. Если вы выполняете большую работу, чтобы собрать строку, я бы предложил использовать AsyncTask