
从 AsyncTask 返回布尔值
在 Android 开发中,可能需要从 AsyncTask 执行的异步任务返回布尔值。这在您需要确定特定操作成功或失败的情况下非常有用。
要从 AsyncTask 返回布尔值,您可以实现回调接口。操作方法如下:
-
创建回调接口:使用接受布尔参数的方法定义接口,表示任务的结果。
1 2 3 | public interface MyInterface {
public void myMethod(boolean result);
}
|
登录后复制
-
将回调接口传递给AsyncTask:时创建 AsyncTask,将回调接口作为参数传递。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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;
}
}
|
登录后复制
-
在父 Activity 中实现回调方法: 在启动的父 Activity 或片段中AsyncTask,实现接口中定义的回调方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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();
|
登录后复制
通过以下这些步骤,您可以有效地从 AsyncTask 返回布尔值并相应地处理结果。
以上是如何从 Android AsyncTask 返回布尔值?的详细内容。更多信息请关注PHP中文网其他相关文章!