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

Bagaimana untuk Mengembalikan Nilai Boolean daripada Android AsyncTask?

Patricia Arquette
Lepaskan: 2024-12-14 19:15:18
asal
938 orang telah melayarinya

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();
Salin selepas log masuk

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);
}
Salin selepas log masuk

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);
    }
}
Salin selepas log masuk

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();
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan