首页 >Java >java教程 >如何从 Android 中的 AsyncTask 返回布尔结果?

如何从 Android 中的 AsyncTask 返回布尔结果?

Patricia Arquette
Patricia Arquette原创
2024-12-06 01:27:10751浏览

How Can I Return a Boolean Result from an AsyncTask in Android?

从 AsyncTask 传递布尔结果

后台

异步任务 (AsyncTask) 通常用于执行耗时的操作后台处理。但是,当需要传回表示连接成功的布尔值时,如何实现?

实现解决方案

要从 AsyncTask 返回布尔值,您可以利用接口来定义接收结果的方法。具体方法如下:

  1. 定义结果处理接口:
public interface MyInterface {
    public void myMethod(boolean result);
}
  1. 修改 AsyncTask

里面AsyncConnectTask,将接口作为参数注入到构造函数中。

public AsyncConnectTask(Context context, String address, String user,
        String pass, int port, MyInterface mListener) {
    mContext = context;
    ...
    this.mListener  = mListener;
}
  1. 将接口传递给 AsyncTask:

初始化任务时,提供处理布尔值的接口的实现

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();
        } 
    }
});
  1. 执行 AsyncTask:

照常启动任务:

task.execute();

这种方法确保结果(无论连接成功还是失败)都通过接口进行传达并在 UI 线程上运行onPostExecute 方法。

以上是如何从 Android 中的 AsyncTask 返回布尔结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn