Frage

Gibt es eine Möglichkeit zu verhindern, dass die doInBackground-Methode / der Thread einer AsyncTask gestartet wird, bis ein AlertDialog, der während der onPreExecute-Methode angezeigt wird, geschlossen wurde?

doInBackground soll nur ausgeführt werden, wenn onPreExecute abgeschlossen ist. Soweit ich jedoch feststellen kann, verhindert ein geöffneter AlertDialog nicht, dass onPreExecute abgeschlossen wird.

Details: Ich bin im Moment auf meinem Handy und kann daher kein Codebeispiel geben. Die Übersicht über den Code ist jedoch, dass es sich um eine App handelt, für die Daten erforderlich sind, auf die nur über mobile Daten zugegriffen werden kann, da sie sich im Telekommunikationsnetz befinden. Die preExec meiner getData-Asynctask überprüft zuerst, ob WLAN aktiv ist, und zeigt in diesem Fall einen Warndialog mit den Optionen WLAN deaktivieren und Abbrechen an.

Abbrechen sollte die Aufgabe beenden und Wifi deaktivieren sollte Wifi deaktivieren. Die Methode doInBg prüft dann, ob die mobile Datenverbindung hergestellt ist, und geht, falls dies nicht der Fall ist, in eine Schlafschleife, bis dies der Fall ist. Sobald es fertig ist, erhält doInBg die Daten ...

Wenn derzeit WLAN aktiviert ist, wird doInBg vor dem Schließen des Dialogfelds gestartet und in der Schlafschleife eingeschlossen, bis eine mobile Verbindung hergestellt wird. Dies führt zu potenziellen Problemen, die ich vermeiden möchte.

War es hilfreich?

Lösung

Sie können versuchen, es irgendwo zu starten, um zu überprüfen, ob Ihr WLAN aktiv ist, und dann mit AlertDialogListener die Aktion von Schaltflächen in AlertDIalog abfangen.Anschließend können Sie Async in AlertDialogListener starten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top