0

Всякий раз, когда я пытаюсь приостановить действие с использованием потока в течение некоторого времени, и я использую функцию для изменения ресурсов просмотра изображений внутри потока, это дает мне исключение, если только исходный поток может изменить его. Теперь я знаю, что это потому, что представление объявлено в исходной деятельности, а не в моем потоке. Есть ли другой способ приостановить действие и сделать это, пока действие приостановлено, и есть ли способ изменить эти параметры в объявленном потоке. Решение обоих будет весьма полезноИсключение нити при изменении imageview

+0

Только пользовательский интерфейс может изменять пользовательский интерфейс. Вам нужно изменить представление или его содержание? Некоторый код будет полезен. – sandrstar

+0

Я не могу опубликовать код сейчас, но я меняю источник своего изображения. –

ответ

0

Вы можете использовать AsyncTask для выполнения фоновой задачи и обновить представление пользовательского интерфейса. Если AsyncTask слишком ограничивает, я рекомендую прочитать собственную документацию Google по адресу threads and Android. Они предоставляют примеры наилучшей практики для обновления потока пользовательского интерфейса.

Основываясь на ваших объяснениях, одним из возможных решений может быть то, что ваш фоновый поток отправляет сообщение (Runnable) в основной поток при изменении образа изображения. Когда поток пользовательского интерфейса получает это сообщение, он может, например, аннулировать некоторые элементы пользовательского интерфейса при изменении содержимого.

+0

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

+0

если бы я мог бы дать ваш ответ больше очков –