Проблема с использованием ProgressBar.setProgress (int) - PullRequest
0 голосов
/ 17 августа 2011

08-18 11: 24: 09.503: ОШИБКА / AndroidRuntime (22649): вызвано: android.view.ViewRoot $ CalledFromWrongThreadException: только исходный поток, создавший иерархию представлений, может касаться его представлений.

Есть ли решение?: /

Ответы [ 2 ]

3 голосов
/ 17 августа 2011

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

Итак, вы уже используете AsyncTask, поэтому вы должны ProgressBar.setProgress() внутри onProgressUpdate() из AsyncTask. Переопределить этот метод

3 голосов
/ 17 августа 2011

Да.Вы не можете касаться пользовательского интерфейса в потоках, не связанных с пользовательским интерфейсом, поэтому решение состоит в том, чтобы запустить проблемный код внутри runOnUiThread:

runOnUiThread(new Runnable() {
    public void run() {
        //your problematic code
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...