android - verursacht durch: android.view.ViewRootImpl $ CalledFromWrongThreadException [duplicate]

8

Ich versuche, ein Bild von meiner URL zu erhalten und in der Anwendung anzuzeigen, aber es wird Fehler verursacht durch: android.view.ViewRootImpl $ CalledFromWrongThreadException: Nur der ursprüngliche Thread, der eine Ansichtshierarchie erstellt hat, kann seine Ansichten berühren . Unten ist mein Code

Code

%Vor%     
chinna_82 26.06.2012, 09:11
quelle

2 Antworten

35

Schlechte Usage von AsyncTask ,

Sie versuchen, Ihren Haupt-UI-Thread von doInBackGround() zu aktualisieren, da AsyncTask das nie erlaubt hat.

Aktualisieren Sie Ihre Benutzeroberfläche nie von doInBackGround() von AsyncTask als ihrem einzigen Arbeitsthread. Schreiben Sie also Ihren Haupt-UI-Aktualisierungscode in onPostExecute() Methode von AsyncTask ..

%Vor%     
user370305 26.06.2012, 09:13
quelle
6

fügt einige Punkte zu dem hinzu, was @ user370305 sagte,

Sie können UI-Elemente im nicht-ui-Thread nicht berühren.

Wenn Sie% co_de verwenden% AsyncTask wird in nicht-ui-Thread ausgeführt, so dass Sie nicht auf ImageView zugreifen können.

Sie können auf die Elemente der Benutzeroberfläche in doInBackground , onPreExecute & amp; onProgressUpdate .

    
Vipul Shah 26.06.2012 09:17
quelle

Tags und Links