download XML-file -> NetworkOnMainThreadException

  • Hallo Android-Developer-Community,


    ich habe folgendes Problem, und zwar möchte ich per button klick einen xml-file aus dem internet downloaden. dazu habe ich ein codebeispiel aus dem stackoverflow-forum gefunden. habe davor schon andere methoden verscuht. jedoch bekomme ich immer eine NetworkOnMainThreadException-Fehlermeldung. Ich weiß leider nicht mehr weiter bzw. was ich falsch mache und bitte um Hilfe und ratschläge.


    Hier ist mein jetztiger Code:


    MainActivity:


    Main.xml:



    folgende persmissions sind festgelegt:
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>


    Weiß jmd. einen rat? wäre für jede hilfe sehr dankbar. :-[


    viele grüße

  • Dein Fehler ist, dass du die Codebeispiele nimmst und nicht die Dokumentation befragst :) Es wird hier wohl niemand sein, der dir den kompletten Code vorkaut. Es gehört als Entwickler schon eigeninitiative dazu.


    Hauptfehler ist hier, dass du die Daten im MainThread laden möchtest, was nicht mehr gestattet ist. Würdest du gleiches auf alten Android Systemen probieren würdest du merken, dass das funktioniert.


    In der aktuellen Variante ist es aber so, dass Google dich dazu zwingt diese Dinge im AsyncTask bzw. in einem Thread laufen zu lassen, damit der Mainthread nicht von solchen Dingen blockiert wird.


    Bsp. AsyncTask:



    Bsp für die Erzeugung eines Threads:

    PHP
    Thread thread = new Thread(new Runnable() {
    		        public void run() {
    });
    
    
    thread.start();
  • hallo drumliner,


    jo danke ( wobei ich deutsche tutorials eher bevorzuge, von denen es aber sehr wenige gibt :D )


    nein spass bei seite. ich habe mich entschieden es mit einem thread zu lösen und habe es auch geschafft. hier ist der code (falls es anderen doch zu schwer fallen sollte) ;)


    mainActivity:


    der Thread:


    viele grüße

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!