4 Stimmen

DoInBackground dauert lange, um zu starten

Weiß jemand, warum es lange dauert, bis doInBackground startet? Hier ist ein Beispiel:

runDoInBackground(){
   print("starte Aufgabe");
   new MyAsyncTask(someObject,otherObject).execute((Void)null);
}

private class MyAsyncTask extends{
   SomeObject someObject;
   OtherObject otherObject;

   public MyAsyncTask(SomeObject someObject, OtherObject otherObject){
      this.someObject=someObject;
      this.otherObject = otherObject;
   }

   @Override
   protected Integer doInBackground(Void... params) {
      print("Starte Hintergrundlauf")
      ... Arbeit ... vom Server erhalten ...
   }

}

Wenn der Grund für die langsame Ausführung andere störende Threads sind (was ich bezweifle), wie kann ich diesem die höchste Priorität geben?

4voto

Simon Meyer Punkte 1946

Es hängt von der Android-Version ab, wie die AsyncTasks ausgeführt werden. Sie werden parallel ausgeführt auf API 5 (2.0) - API 10 (2.3.3). Ab API 11 werden sie standardmäßig wieder seriell ausgeführt. Wie zapl erwähnt hat, musst du

task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, (Void)null);

aufrufen, um sie wieder parallel auszuführen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X