Изменить вид в деятельности - PullRequest
0 голосов
/ 26 ноября 2011

У меня есть действие, которое устанавливает пользовательское представление "onCreated", и поток запускается, этот поток циклически повторяется каждые 23 мс и "делает недействительным" это представление, так что его onDraw вызывается почти всегда.

Это представление продолжаетсяна экране до тех пор, пока пользователь не щелкнет по нему (onTouchEvent) и просмотр не выполнит некоторые действия, и когда все готовые общедоступные флажки будут включены, чтобы действие «знало», когда представление было активировано, и выполнило его, в этот момент действие должно изменить свое представление.для другого, созданного пользователем, проблема заключается в том, что поскольку проверка флага выполняется в методе выполнения потока, действие отправляет «CallFromWrongThreadException», это потому, что, насколько я понимаю, «изменение» находится в другом потоке (не в пользовательском интерфейсе).).

Я установил runOnUiThread, чтобы преодолеть это, и srceen становится полностью черным.

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

1 Ответ

1 голос
/ 26 ноября 2011

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

Другой вариант - опубликовать нужный коддля запуска самого представления, например:

mMyView.post(new Runnable() {
    public void run() {
        mMyView.doSomething();
    }
});

Этот метод хорошо подойдет для переключения видимости существующего представления.

Это хороший обзор этих методов: http://android -developers.blogspot.com / 2009/05 / безболезненным-threading.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...