Tôi có một số EditTexts mà người dùng nhập vào địa chỉ ftp, tên người dùng, mật khẩu, cổng và nút testConnection. Nếu một kết nối được estabished thành công, nó trả về giá trị boolean là true.Làm cách nào để trả lại boolean từ AsyncTask?
boolean status = ftpConnect(_address, _username, _password,_port);
ftpDisconnect();
if (status == true) {
Toast.makeText(SiteManager.this, "Connection Succesful",
Toast.LENGTH_LONG).show();
} else {
Toast.makeText(SiteManager.this,
"Connection Failed:" + status, Toast.LENGTH_LONG).show();
}
Tôi đang làm lại mã để sử dụng AsyncTasks để thực hiện các hoạt động ftp khác nhau, nhưng làm cách nào tôi có thể trả về giá trị logic nếu kết nối được thực hiện thành công?
testConnection.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
_name = etSitename.getText().toString();
_address = etAddress.getText().toString();
_username = etUsername.getText().toString();
_password = etPassword.getText().toString();
_port = Integer.parseInt(etPort.getText().toString());
AsyncConnectTask task = new AsyncConnectTask(SiteManager.this,
_address, _username, _password, _port);
task.execute();
// boolean status = ftpConnect(_address, _username, _password,
// _port);
// ftpDisconnect();
// if (status == true) {
// Toast.makeText(SiteManager.this, "Connection Succesful",
// Toast.LENGTH_LONG).show();
// savesite.setVisibility(0);
// } else {
// Toast.makeText(SiteManager.this,
// "Connection Failed:" + status, Toast.LENGTH_LONG)
// .show();
// }
}
});
Và AsyncTask tôi
public class AsyncConnectTask extends AsyncTask<Void, Void, Void> {
private Context mContext;
private FTPHelper ftpHelper = new FTPHelper();
private String _address;
private String _user;
private String _pass;
private int _port;
ProgressDialog progressDialog;
public AsyncConnectTask(Context context, String address, String user,
String pass, int port) {
mContext = context;
_address = address;
_user = user;
_pass = pass;
_port = port;
}
// declare other objects as per your need
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(mContext, "Please wait for ",
"Process Description Text", true);
// do initialization of required objects objects here
};
@Override
protected Void doInBackground(Void... params) {
boolean status = ftpHelper.ftpConnect(_address, _user, _pass, _port);
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
progressDialog.dismiss();
};
}
bạn muốn giá trị trạng thái quay lại Chủ đề giao diện người dùng? – Blackbelt
Có. Điều đó có thể không? – RapsFan1981