HTTPClient Exception

  • 3 Antworten
  • Neuester Beitrag
Diskutiere HTTPClient Exception im Android App Entwicklung im Bereich Betriebssysteme & Apps.
J

jakves

Gast
Bekomme immmer die Exception android.os.NetworkOnMainThreadException. Was mache ich falsch?

Code:
Code:
package com.ELQuiz;

import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;


public class EndActivity extends Activity
{

    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.end);
        
        Intent intent = getIntent();
        Bundle daten = intent.getExtras();
        
        int richtig = daten.getInt("Richtig");
        float zeit = daten.getFloat("Zeit");
        String user = daten.getString("User");
        
        float points = 1000 - ((10-richtig)*10) - (zeit/1000);

        
        
        TextView ergebnis = new TextView(this);
        ergebnis = (TextView) findViewById(R.id.ergebnis_textview);
        
        ergebnis.setText(user + " hat beim Elektronik-Quiz " + richtig + " von 10 Fragen in einer Zeit von " + (zeit/1000) + " Sekunden richtig beantwortet und damit " + points + " Punkte erreicht.");
        
        //MySQL
        
        try{
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://www.example.com/el_quiz/on_db.php");
            httpclient.execute(httppost);
        }

        catch(Exception e)
        {
            ergebnis.setText(e.toString());
        }
        
        //MySQL Ende
        
        Button end = new Button(this);
        end = (Button) findViewById(R.id.Button_Restart);
        end.setOnClickListener(new View.OnClickListener() 
        {
            
            public void onClick(View v) 
            {                
                Intent myIntent = new Intent(v.getContext(),ELQuizActivity.class);
                startActivity(myIntent);    
            }
            
        });
        
        
        
    }
}
Danke schon mal!
 
S

swordi

Lexikon
hmmm

die exception lautet NetworkOnMainThreadException.

das würde ja mal schnell übersetzt bedeuten, dass du netzwerkoperationen im main thread ausführst.

da wir ja alle wissen, dass das sehr böse enden kann, solltest du deine netwerkanfragen vom main thread entfernen und in einen separaten thread packen.

denke damit kannst das problem lösen
 
J

jakves

Gast
Danke für die Antwort! Klingt logisch. Nur wie geht das? :DD Sry, aber habe nicht soviel Erfahrung damit..

danke!
 
S

swordi

Lexikon
schau dir tutorials zum thema AsyncTask an

das wird dir helfen.

und lies dich in das thema threads ein, das brauchst du ständig