2016-07-05 6 views
-1

ich einige Http Antrag mache, und ich habe diesen Fehler habe in meinem logcat:Multithreading Fehler in Android: CalledFromWrongThreadException

Verursacht durch: android.view.ViewRootImpl $ CalledFromWrongThreadException: Nur das Original-Thread, Erstellt eine Ansichtshierarchie kann ihre Ansichten berühren.

, dass mein DoInBackground Code ist:

public class AsyncClass extends AsyncTask { 
StringBuilder result = new StringBuilder(); 
String stream = null; 
public String rest_Url = "https://....." ; 

@Override 
protected Object doInBackground(Object[] params) { 
    HttpURLConnection client = null; 

    try { 
     URL url = new URL(rest_Url); 
     client = (HttpURLConnection) url.openConnection(); 
     client.setRequestMethod("GET"); 
     client.setDoOutput(true); 


     int responseCode = client.getResponseCode(); 
     switch (responseCode){ 
      case 200: 
       String success = "SUCCESS"; 
       System.out.println(success); 

       InputStream inputPost = new BufferedInputStream(client.getInputStream()); 
       BufferedReader reader = new BufferedReader(new InputStreamReader(inputPost)); 
       String line; 
       while ((line = reader.readLine()) != null) { 
        result.append(line); 
       } 
       stream = result.toString(); 
       MainActivity.textView.setText(stream); 
       break; 

      default: 
       String failure = "FAILURE"; 
       System.out.println(failure); 
       break; 
     } 


    } catch (IOException e) { 
     e.printStackTrace();} 

    finally { 
     if(client != null){ 
      client.disconnect(); 
     } 
    } 

    return null; 
}} 

Können Sie mir helfen? Auch wenn ich MainActivity.textView.setText(stream); kommentiere, habe ich das Problem.

+0

'MainActivity.textView'? Hast du dein TextView statisch deklariert? – Blackbelt

Antwort

1

Das Problem kommt aus der Leitung:

MainActivity.textView.setText(stream); 

Sie müssen, dass auf dem Hauptthread Marschall. Ähnliche Fragen hier: Run Callback On Main Thread

+0

Anstelle von Marshal verwende ich die 'onPostExecute()' Methode, thx daf btw – CSecchi

+0

Gern geschehen (: – daf