Starte AsyncTask aus einem anderen AsyncTask doInBackground()

Ich versuche zu starten ein AsyncTask aus einem anderen AsyncTask ist doInBackground()-Methode...

Ist das überhaupt möglich? Wenn ja, wie kann ich das erreichen?

SPÄTER BEARBEITEN:

Die Idee ist, dass ich starten Sie eine asynctask das wird mich Status vom Hochtöner ... Alles ok, bis hier ... Aber wenn ich stoßen einige spezifische tweets, die ich brauche, Sie zu ändern mit ein paar Infos von meinem server, hier werde ich ein anderes Netz-Betrieb, und da muss ich warten bis ich die info von meinem server mache ich:

GetContent getContentServiceAsyncTask = new GetContent(context);
try {
    tweetText = Uri.decode(getContentServiceAsyncTask.execute(
            URL_GET_CONTENT, jsonRequest).get());
} catch (InterruptedException e) {
    Log.e(TAG_DEBUG, "InterruptedException: ", e);
} catch (ExecutionException e) {
    Log.e(TAG_DEBUG, "ExecutionException: ", e);
}

Dies ist, begann bereits begonnen AsyncTask in der doInBackground () - Methode ...

Ich weiß, ich kann nur hinzufügen, dass die Methoden in der AsyncTask und rufen Sie in der doInBackground () - Methode, aber ich brauche, um Sie in anderen Orten, wo ich beginnen diese AsyncTasks von onPostExecute ...

Wenn Sie Jungs denken, dass es einen einfachen work-around für diese, das wird keinen Einfluss auf meine Leistung, das wird groß sein ... wenn nicht mache ich einige statische Methoden, die ich nenne, in allen AsyncTasks, die ich brauche(aber das wird von mir verlangen, Sie zu ändern sehr viel von meinem code)

  • warum wollen Sie das tun? developer.android.com/reference/android/os/AsyncTask.html. überprüfen Sie das Thema threading Regeln
  • Es ist möglich, aber es wird Abstürzen, wenn Sie versuchen, ändern der Benutzeroberfläche von onPostExecute auf die zweite Aufgabe: es ist nicht die Ausführung im Haupt-thread.
  • WENN Ihre zweite Aufgabe nicht enthält UI-operation, können Sie beginnen.
  • Seine ratsam, start async-post ausführen der ersten async.
  • Wenn keine der gegebenen Antworten war hilfreich, fühlen Sie sich frei, das zu akzeptieren 🙂
  • meine zweite Aufgabe enthält nicht-UI-Bedienung ... können Sie erklären, wie kann ich es tun ?
  • Hi schwarz, dein Erster async-task muss ausgeführt werden, auf parallelen Aufgabe artitecture. So starten Sie Ihre erste Aufgabe mit executor ==> "neue FirstTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, <Parameter>");" Zweite Aufgabe führen Sie in Ihrem firsttask ist doInbackgreound(). Erstelle ich Beispiel-app, und schreiben Sie die Antwort.
  • Ich brauche keine parallele Ausführung, da, wie Sie sehen können, dass ich mit get() für den innen-AsyncTask... auch die executor wurde in API-level 11 ist das nicht gut für mich, denn meine app hat Unterstützung für den unteren Ebenen auch .. Aber immer noch eine gute Antwort ... danke

InformationsquelleAutor Ionut Negru | 2013-10-22
Schreibe einen Kommentar