Asynctask иногда сбивает мое приложение в DoInbackRound (ViewRoot $ CallFromWrongThreadException)Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Asynctask иногда сбивает мое приложение в DoInbackRound (ViewRoot $ CallFromWrongThreadException)

Сообщение Anonymous »

Кто -нибудь может сказать мне, почему моя асинхронная задача иногда не так?java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:200)
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
at java.util.concurrent.FutureTask.setException(FutureTask.java:125)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
at java.lang.Thread.run(Thread.java:1019)
Caused by: android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
at android.view.ViewRoot.checkThread(ViewRoot.java:3225)
at android.view.ViewRoot.invalidateChild(ViewRoot.java:760)
at android.view.ViewRoot.invalidateChildInParent(ViewRoot.java:786)
at android.view.ViewGroup.invalidateChild(ViewGroup.java:2511)
at android.view.View.invalidate(View.java:5498)
at android.view.View.setBackgroundDrawable(View.java:7845)
at android.view.View.setBackgroundResource(View.java:7754)
at com.KeySoft.NewPilates.Activities.LatestActivity.parseXml(LatestActivity.java:1106)
at com.KeySoft.NewPilates.Activities.LatestActivity.access$1(LatestActivity.java:964)
at com.KeySoft.NewPilates.Activities.LatestActivity$DownloadXml.doInBackground(LatestActivity.java:354)
at com.KeySoft.NewPilates.Activities.LatestActivity$DownloadXml.doInBackground(LatestActivity.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:185)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)


Я вижу, что моя функция asynctaks * doinbackground * Есть betbackgrounddrawable и setbacktroundresource , которые не очень хорошо ... p>

Получил решение из проверенного ответа: < /p>

Я должен использовать новый запуск для изменения представлений внутри Doinbackround. < /p>

runOnUiThread(new Runnable() {
public void run() {

LinearLayout hatterLayout = (LinearLayout)findViewById(R.id.hatterLayout);
hatterLayout.setBackgroundResource(R.drawable.nonet);

}


Подробнее здесь: https://stackoverflow.com/questions/111 ... calledfrom
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»