Tugas tak segerak (AsyncTask) sering digunakan untuk melaksanakan pemprosesan latar belakang operasi yang memakan masa. Walau bagaimanapun, apabila perlu menghantar kembali nilai boolean yang menunjukkan sambungan yang berjaya, bagaimanakah perkara ini boleh dicapai?
Untuk mengembalikan boolean daripada AsyncTask, anda boleh memanfaatkan antara muka untuk menentukan kaedah untuk menerima keputusan. Begini caranya:
public interface MyInterface { public void myMethod(boolean result); }
Di dalam AsyncConnectTask, menyuntik antara muka sebagai hujah kepada pembina.
public AsyncConnectTask(Context context, String address, String user, String pass, int port, MyInterface mListener) { mContext = context; ... this.mListener = mListener; }
Apabila memulakan tugas, berikan pelaksanaan antara muka untuk mengendalikan boolean hasil.
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(); } } });
Mulakan tugas seperti biasa:
task.execute();
Pendekatan ini memastikan keputusan, sama ada sambungan yang berjaya atau kegagalan, disampaikan melalui antara muka dan berjalan pada utas UI dalam kaedah onPostExecute.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengembalikan Hasil Boolean daripada AsyncTask dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!