Rumah >Java >javaTutorial >Bagaimana untuk Mengembalikan Nilai Boolean daripada Android AsyncTask?

Bagaimana untuk Mengembalikan Nilai Boolean daripada Android AsyncTask?

Patricia Arquette
Patricia Arquetteasal
2024-12-14 19:15:18941semak imbas

How to Return Boolean Values from an Android AsyncTask?

Mengembalikan Nilai Boolean daripada AsyncTask

AsyncTasks menyediakan cara yang mudah untuk melaksanakan operasi latar belakang dalam aplikasi Android. Walau bagaimanapun, apabila anda perlu menyampaikan hasil AsyncTask kepada urutan utama, seperti mengembalikan nilai boolean, kaedah penyelesaian AsyncTask standard mungkin tidak mencukupi.

Kod Asal

Pertimbangkan kod berikut, di mana AsyncTask digunakan untuk mewujudkan FTP sambungan:

AsyncConnectTask task = new AsyncConnectTask(SiteManager.this,
            _address, _username, _password, _port);
task.execute();

Dalam kod ini, AsyncConnectTask akan melaksanakan operasi sambungan di latar belakang dan mengembalikan hasilnya sebagai nilai boolean. Walau bagaimanapun, tiada mekanisme untuk mendapatkan semula nilai boolean ini dalam urutan utama.

Pendekatan Antara Muka Tersuai

Untuk mengembalikan nilai boolean daripada AsyncTask, anda boleh mencipta antara muka tersuai yang akan dilaksanakan dalam aktiviti atau serpihan yang mencipta AsyncTask. Contohnya:

public interface MyInterface {
    public void myMethod(boolean result);
}

Modified AsyncTask

AsyncTask kemudiannya boleh diubah suai untuk melaksanakan antara muka ini dan menghantar hasilnya kembali ke utas utama melalui antara muka:

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) {
        // ...
        this.mListener  = mListener;
    }

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

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

Penggunaan

Dengan antara muka tersuai dan AsyncTask yang diubah suai, anda boleh melaksanakan tugas dan menerima hasil boolean dalam utas utama:

AsyncConnectTask task = new AsyncConnectTask(SiteManager.this,
            _address, _username, _password, _port,  new MyInterface() {
    @Override
    public void myMethod(boolean result) {
        if (result == true) {
            // Connection successful
        } else {
            // Connection failed
        } 
    }
});

task.execute();

Dengan menggunakan pendekatan ini, anda boleh mengembalikan nilai boolean daripada AsyncTasks dan memproses keputusan pada utama benang.

Atas ialah kandungan terperinci Bagaimana untuk Mengembalikan Nilai Boolean daripada Android AsyncTask?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn