ホームページ >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 にインターフェースを渡します:

タスクの初期化時、ブール値を処理するインターフェースの実装を提供します。 result.

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。