ホームページ >Java >&#&チュートリアル >FTP 操作を実行する Android AsyncTask からブール結果を取得するにはどうすればよいですか?

FTP 操作を実行する Android AsyncTask からブール結果を取得するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-24 03:40:14158ブラウズ

How Can I Get a Boolean Result from an Android AsyncTask Performing FTP Operations?

AsyncTask からのブール結果の取得

Android アプリケーションでは、AsyncTasks を使用して FTP 操作を実行しています。ただし、接続が成功したかどうかを示すブール値を返すという課題に直面しています。

元々、コードは ftpConnect を使用して接続を同期的に確立し、結果をブール変数 (ステータス) に格納していました。ただし、AsyncTasks を使用すると、操作を非同期で実行しようとします。

AsyncTask からブール値を返すには、インターフェイスの実装を検討してください。

public interface MyInterface {
    public void myMethod(boolean result);
}

このインターフェイスを 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) {
        mContext = context;
        _address = address;
        _user = user;
        _pass = pass;
        _port = port;
        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) {
            Toast.makeText(SiteManager.this, "Connection Succesful",
            Toast.LENGTH_LONG).show();
        } else {
            Toast.makeText(SiteManager.this, "Connection Failed:" + status, Toast.LENGTH_LONG).show();
        } 
    }
});

task.execute();

myMethod 実装では、必要に応じて結果が得られます。このメソッドは UI スレッドで呼び出されることに注意してください

以上がFTP 操作を実行する Android AsyncTask からブール結果を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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