ホームページ > Java > &#&チュートリアル > Android AsyncTask からブール値を返す方法は?

Android AsyncTask からブール値を返す方法は?

Patricia Arquette
リリース: 2024-12-14 19:15:18
オリジナル
938 人が閲覧しました

How to Return Boolean Values from an Android AsyncTask?

AsyncTask からブール値を返す

AsyncTasks は、Android アプリケーションでバックグラウンド操作を実行する便利な方法を提供します。ただし、ブール値を返すなど、AsyncTask の結果をメイン スレッドに伝達する必要がある場合は、標準の AsyncTask 完了メソッドでは不十分な場合があります。

元のコード

次のコードを考えてみましょう。ここでは、AsyncTask を使用して FTP を確立しています。 connection:

AsyncConnectTask task = new AsyncConnectTask(SiteManager.this,
            _address, _username, _password, _port);
task.execute();
ログイン後にコピー

このコードでは、AsyncConnectTask がバックグラウンドで接続操作を実行し、結果をブール値として返します。ただし、メイン スレッドでこのブール値を取得するメカニズムはありません。

カスタム インターフェイスのアプローチ

AsyncTask からブール値を返すには、 AsyncTask を作成するアクティビティまたはフラグメントに実装されるカスタム インターフェイス。例:

public interface MyInterface {
    public void myMethod(boolean result);
}
ログイン後にコピー

Modified AsyncTask

AsyncTask を変更して、このインターフェイスを実装し、結果をメイン スレッドに渡すことができます。インターフェイス:

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);
    }
}
ログイン後にコピー

使用法

カスタム インターフェイスと変更された AsyncTask を使用すると、メイン スレッドでタスクを実行し、ブール値の結果を受け取ることができます:

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();
ログイン後にコピー

このアプローチを使用すると、AsyncTasks からブール値を返し、その結果をメインで処理できます。スレッド。

以上がAndroid AsyncTask からブール値を返す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート