B
Boris0815
Fortgeschrittenes Mitglied
- 4
Hallo,
ich nutze in meiner App einen Rest-Webserver um verschiedene Daten zu bekommen. Dies hat auch ohne Problem funktioniert. Nun Habe ich meine App auf einem 4.0-Device getestet und es funktioniert nicht mehr, da ich nicht mit AsycTask gearbeitet habe. Ich selber habe vorher immer mit einem 2.3-Device getestet.
Nun habe ich herausgefunden, dass ich die Restmethoden in einem AsyncTask aufrufen soll. (Sonst bekomme ich eine "android.os.NetworkOnMainThreadException")
Das passt nun aber garnicht in meine Architektur.
Kann ich das auch ohne AsyncTask machen? (Ich weis UI einfrieren etc. passiert aber nicht, das die Restmethoden kaum Daten enthalten) Synchron funktioniert eigentlich sehr gut in meinem Anwendungsfall.
Oder gibt es eine Möglichkeit auf die Asynchrone Methode zu warten um wieder synchron zu werden?
Beispielhaft:
Bitte keine Diskussion von wegen Asynchron oder nicht. In meinem Anwendungsfall funktioniert Synchron sehr gut.
In meinem Fall muss ich jedoch die Daten haben bevor ich weitermachen kann. Daher behindert mich Asynchron eher als es hilft.
Gruß
Boris
ich nutze in meiner App einen Rest-Webserver um verschiedene Daten zu bekommen. Dies hat auch ohne Problem funktioniert. Nun Habe ich meine App auf einem 4.0-Device getestet und es funktioniert nicht mehr, da ich nicht mit AsycTask gearbeitet habe. Ich selber habe vorher immer mit einem 2.3-Device getestet.
Nun habe ich herausgefunden, dass ich die Restmethoden in einem AsyncTask aufrufen soll. (Sonst bekomme ich eine "android.os.NetworkOnMainThreadException")
Das passt nun aber garnicht in meine Architektur.
Kann ich das auch ohne AsyncTask machen? (Ich weis UI einfrieren etc. passiert aber nicht, das die Restmethoden kaum Daten enthalten) Synchron funktioniert eigentlich sehr gut in meinem Anwendungsfall.
Oder gibt es eine Möglichkeit auf die Asynchrone Methode zu warten um wieder synchron zu werden?
Beispielhaft:
Code:
public List<String> GetList(String url){
DownloadListTask task = new DownloadListTask();
task.execute(new String[] { url });
// Wait on task
return listReturn;
In meinem Fall muss ich jedoch die Daten haben bevor ich weitermachen kann. Daher behindert mich Asynchron eher als es hilft.
Gruß
Boris