>Java >java지도 시간 >FTP 작업을 수행하는 Android AsyncTask에서 부울 결과를 어떻게 얻을 수 있나요?

FTP 작업을 수행하는 Android AsyncTask에서 부울 결과를 어떻게 얻을 수 있나요?

Patricia Arquette
Patricia Arquette원래의
2024-12-24 03:40:14155검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.