AsyncTasks...

M

mkl

Erfahrenes Mitglied
44
Hi ich hab ein paar Frage zu AsyncTasks. Ich hab nun schon ein bisschen mit AsyncTasks Erfahrungen gesammelt. Wenn es nur um einen AsyncTask geht klappt alles auch wunderbar. Nun habe ich bedingt durch die Vorgabe einen AsyncTask der nie abgeschlossen wird. (While-True Schleife) weil ich quasie einen TCP-Server stellen muss um immer auf Nachrichten reagieren zu können. Ja ich weis das ist eine schlechte Lösung mir wurde es aber so vorgeben, da sie keine extra Skripts für Google-Push-Notifications erstellen wollten. Nun habe ich festgestellt, dass wenn ich den "ServerTask" starte und dann anschließen meinen AnfrageTask, dann schafft es der AsyncTask nicht fertig zu werden. Auch beim debuggen komme ich in irgendwelche Files die keinen Code repräsentieren. Hab schon öfters was von einem TASKPOOL gelesen falls das hilft... Kann man denn überhaupt einen AsyncTask laufen lassen wenn der andere noch nicht abgeschlossen ist? (Sind natürlich unterschiedliche Funktionen) Wie gesagt wenn ich den ServerTask nicht laufen lasse funktioniert der andere AsyncTask wunderbar, der ServerTask funktioniert alleine ebenso wunderbar... Außerdem würde mich interessieren ob ihr vielleicht irgendeine Möglichkeit kennt wie ich in dem AsyncTask mit der while-True Schleife in der Methode doinBackground irgendwie auf die GUI zugreifen kann. Das Problem ist, dass dieser Task die onPostExecute nie erreicht weil er ja in der while-Schleife bleibt daher bin ich etwas Ratlos was das angeht... Wenn ich einfach probiere auf das TextView Element zuzugreifen dann bekomm ich logischerweise eine Exception die mir sagt, dass ein Zugriff nur von der erstellenden Activity genehmigt wird....

Hoff ihr versteht was ich meine, kann leider keinen Code posten, da ich ihn im Geschäft gelassen hab.

Gruß mkl

Der ursprüngliche Beitrag von 18:59 Uhr wurde um 19:24 Uhr ergänzt:

Ich hab grad nochma die DeveloperSeite überflogen und könnt mir vorstellen, dass mein UI-Update Problem evtl. mit der onProgressUpdate() zu lösen wäre. Da ich einfach am Ende meiner while-Schleife einmal publishProgress() aufrufe und dort dann den aktuellen Zustand wie eine Log in der Main ausgebe. Stellt sich nur noch die Frage wie ich mehrere AsyncTask parallel stabil laufen lassen kann? Anscheinend war es nur in 1.5 auf 1 Task limitiert seit 1.6 sollen bis zu 5 AsyncTasks möglich sein. Hab übrigends auch den Ausdruck zum "POOL" gefunden den ich öfters im Debugger zu sehen bekommen hab:

THREAD_POOL_EXECUTOR

Bin dann mal auf der Suche nach Examples im Zusammenhang mit THREAD_POOL_EXECUTOR vllt. löst das ja mein Problem.. Könnt aber gerne auch was dazu sagen :)
 
Zuletzt bearbeitet:

Ähnliche Themen

M
Antworten
8
Aufrufe
1.685
swa00
swa00
lordzwieback
Antworten
4
Aufrufe
833
lordzwieback
lordzwieback
Zurück
Oben Unten