Heim >Java >javaLernprogramm >Wie kann ich ein boolesches Ergebnis von einer AsyncTask in Android zurückgeben?

Wie kann ich ein boolesches Ergebnis von einer AsyncTask in Android zurückgeben?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-06 01:27:10747Durchsuche

How Can I Return a Boolean Result from an AsyncTask in Android?

Boolesche Ergebnisse von AsyncTask kommunizieren

Hintergrund

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?

Implementierung der Lösung

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:

  1. Definieren Sie eine Schnittstelle für die Ergebnisverarbeitung:
public interface MyInterface {
    public void myMethod(boolean result);
}
  1. Ändern Sie die AsyncTask:

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;
}
  1. Übergeben Sie die Schnittstelle an die AsyncTask:

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();
        } 
    }
});
  1. Führen Sie die aus AsyncTask:

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn