Heim >Java >javaLernprogramm >Wie kann ich ein boolesches Ergebnis von einer AsyncTask in Android zurückgeben?
Eine asynchrone Aufgabe (AsyncTask) wird häufig für die Durchführung zeitaufwändiger Vorgänge im Hintergrund verwendet. Wenn jedoch ein boolescher Wert zurückgegeben werden muss, der eine erfolgreiche Verbindung anzeigt, wie kann dies erreicht werden?
Um einen booleschen Wert von AsyncTask zurückzugeben, können Sie eine zu definierende Schnittstelle nutzen eine Methode zum Empfangen des Ergebnisses. So geht's:
public interface MyInterface { public void myMethod(boolean result); }
Injizieren Sie die Schnittstelle in die AsyncConnectTask als ein Argument für den Konstruktor.
public AsyncConnectTask(Context context, String address, String user, String pass, int port, MyInterface mListener) { mContext = context; ... this.mListener = mListener; }
Stellen Sie beim Initialisieren der Aufgabe eine Implementierung der bereit Schnittstelle zur Verarbeitung des booleschen Ergebnisses.
AsyncConnectTask task = new AsyncConnectTask(SiteManager.this, _address, _username, _password, _port, new MyInterface() { @Override public void myMethod(boolean result) { if (result == true) { Toast.makeText(SiteManager.this, "Connection Succesful", Toast.LENGTH_LONG).show(); } else { Toast.makeText(SiteManager.this, "Connection Failed:" + status, Toast.LENGTH_LONG).show(); } } });
Initiieren Sie die Aufgabe wie gewohnt:
task.execute();
Dieser Ansatz stellt sicher, dass das Ergebnis, ob eine erfolgreiche Verbindung oder ein Fehler, über die Schnittstelle kommuniziert und weiter ausgeführt wird der UI-Thread innerhalb der onPostExecute-Methode.
Das obige ist der detaillierte Inhalt vonWie kann ich ein boolesches Ergebnis von einer AsyncTask in Android zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!