Heim > Java > javaLernprogramm > Wie kann ich ein boolesches Ergebnis von einer Android-AsyncTask erhalten, die FTP-Vorgänge ausführt?

Wie kann ich ein boolesches Ergebnis von einer Android-AsyncTask erhalten, die FTP-Vorgänge ausführt?

Patricia Arquette
Freigeben: 2024-12-24 03:40:14
Original
166 Leute haben es durchsucht

How Can I Get a Boolean Result from an Android AsyncTask Performing FTP Operations?

Ein boolesches Ergebnis von AsyncTask abrufen

In Ihrer Android-Anwendung verwenden Sie AsyncTasks, um FTP-Vorgänge auszuführen. Sie stehen jedoch vor der Herausforderung, einen booleschen Wert zurückzugeben, der angibt, ob die Verbindung erfolgreich ist.

Ursprünglich verwendete Ihr Code ftpConnect, um die Verbindung synchron herzustellen, und speicherte das Ergebnis in einer booleschen Variablen (Status). Mit AsyncTasks versuchen Sie jedoch, den Vorgang asynchron auszuführen.

Um einen booleschen Wert von Ihrer AsyncTask zurückzugeben, sollten Sie die Implementierung einer Schnittstelle in Betracht ziehen:

public interface MyInterface {
    public void myMethod(boolean result);
}
Nach dem Login kopieren

Implementieren Sie diese Schnittstelle in Ihrer AsyncTask und übergeben Sie eine Instanz davon als Parameter an den Konstruktor:

public class AsyncConnectTask extends AsyncTask<Void, Void, Boolean> {

    private MyInterface mListener;

    public AsyncConnectTask(Context context, String address, String user,
        String pass, int port, MyInterface mListener) {
        mContext = context;
        _address = address;
        _user = user;
        _pass = pass;
        _port = port;
        this.mListener  = mListener;
    }

    @Override
    protected Boolean doInBackground(Void... params) {
        ....
        return result;
   }


    @Override
    protected void onPostExecute(Boolean result) {
        if (mListener != null) 
            mListener.myMethod(result);
    }
}
Nach dem Login kopieren

Erstellen Sie in Ihrer Aktivität oder Ihrem Fragment eine Instanz der AsyncTask und übergeben Sie Ihre Schnittstellenimplementierung als Parameter:

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();
        } 
    }
});

task.execute();
Nach dem Login kopieren

In der myMethod-Implementierung können Sie das Ergebnis nach Bedarf verarbeiten. Beachten Sie, dass diese Methode im UI-Thread

aufgerufen wird

Das obige ist der detaillierte Inhalt vonWie kann ich ein boolesches Ergebnis von einer Android-AsyncTask erhalten, die FTP-Vorgänge ausführt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage