2017-07-16 1 views
0

Mein Code Abrufs auf AsyncTask Daten aus der Cloud-Datenbank zu stoppen.Android Java, wie der Code von der Ausführung wie Break-Point

Ich habe bemerkt, wenn ich Haltepunkt (während des Debuggens) setze, läuft Mein Code in Ordnung, die empfangenen Daten und dann manipulieren mein Code diese Daten.

Wenn ich keinen Haltepunkt verwende, ist mein Array null, der Code hat nicht auf die Daten gewartet.

ich versucht habe,

Thread.sleep(timeInMills); 

und

SystemClock.sleep(timeInMills); 

aber das half nicht, es scheint das ganze Thema zu stoppen. Gibt es eine Möglichkeit für mich, den Code auf die gleiche Weise zu unterbrechen, wie es für eine oder zwei Sekunden der Breakpoint ist.

Auch dies wirkt sich nicht auf meinen UI-Thread aus, da dieser in AsyncTask ausgeführt wird.

+0

[AsyncTask leer sein würde ] (https://developer.android.com/reference/android/os/AsyncTask.html) - 'onPostExecute' sollte mit dem Ergebnis fortfahren. Das ist die Bedeutung von _asynchroneous_, ein Callback zu einer anderen Zeit. –

+0

Ich benutze onPostExcute, aber dieses Mal ist es nicht hilfreich, da das inbackground das Array leer sendet. –

+0

Bitte teilen Sie den [Mindestcode, der das Problem reproduziert] (http://stackoverflow.com/help/mcve). Ohne das vermuten wir nur, was du versuchst. –

Antwort

0

Ich habe eine ähnliche Situation konfrontiert

, wenn Sie den Ergebnis-Array an einen Adapter oder eine Funktion macht es am Ende onPostExecute Verfahren ausführen zu senden, nach wie vor, dass Ihre Daten Array

+0

Die Logik geht so in Bacground. 1. Abfrage der Firebase-Datenbank 28 Abfragen 2. Doing Logik vergleichen die Abfragen Ergebnisse. 3. Schreiben Sie die Ergebnisse in eine Datei. 4. Lesen Sie die Ergebnisse von der Datei zu Array. 5.Senden Sie die Array-Ergebnisse an onPostExecute. 6. Starten Sie eine neue Aktivität für die Ergebnisse. Das Problem scheint zu sein, dass der Code versucht, die Ergebnisdatei zu lesen, bevor der Code die Datei schreibt (da die Firebase-Abfragen Zeit brauchen) Beide laufen im doingInBackground –

+0

06: 43: 43.680 Die Leseantwort lautet: => leer 06: 43: 45.006 Die Antwort schreiben ist: {"Adresse": "Aharon Boxer 38 .... Ich habe zwei Sekunden Unterschied zwischen lesen und schreiben –

+0

Sie können die Ergebnisse an onPostExcute senden, dann schreiben Sie Ihre Daten zu die Datei und danach lese sie in das Array und mache danach alle deine Manipulationen damit, damit du sicherstellst, dass deine Daten in die Datei geschrieben wurden – Esraa

Verwandte Themen