Es ist mein erstes Mal hier. Ich hoffe ich bin mit meiner Frage klar genug.Android - Laufende Aufgaben im Hintergrund in der Reihenfolge der Anfrage
Ich möchte ein Decoder
Objekt am Anfang einer Aktivität initialisiert haben und bleibt im Leerlauf, bis es Anforderung ist, Decoder.decode(int x)
zu tun, die ich im Hintergrund und in der Reihenfolge der Anfrage ausführen möchte.
Zum Beispiel braucht Decoder.decode(int x)
mehr als 1 Sekunde zu beenden, aber ich fordere es an, es einmal pro Sekunde auszuführen. Ich möchte einen Anruf an Decoder.decode(int x)
wartet auf den vorherigen Aufruf zu beenden, bevor es mit der Ausführung beginnt.
Momentan verwende ich Service
und binde es an meine Aktivität. Der Initialisierungsteil ist in onBind()
erfolgt. Bei jeder Anforderung erstellt der Dienst eine AsyncTask und führt innerhalb seiner doInBackground
Methode Decoder.decode(int x)
aus. Ist das der richtige Ansatz oder sollte ich etwas anderes machen?
Vielen Dank für Ihre Hilfe.
Sie sollten immer AsyncTask für Zeit verwenden Operationen raubend –
@RajPatel Ja, ich AsyncTask jetzt bin mit aber ich dont‘wissen, wie die einen Antrag machen wartet auf den, der vor dem Start fertig ist. – Nguyen
siehe 'HandlerThread' Klasse, lesen [this] (https://medium.com/@ali.muzaffar/handlerthreads-and-why-you-should-be-using-them-in-your-android-apps-dc8bf1540341 # .78reeomk6), Abschnitt 'Wie benutze ich HandlerThreads' oder [this] (https://www.safaribooksonline.com/library/view/efficient-android-threading/9781449364120/ch08.html) – pskink