> Java > 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를 설정하는 다음 코드를 고려하세요. 연결:

AsyncConnectTask task = new AsyncConnectTask(SiteManager.this,
            _address, _username, _password, _port);
task.execute();
로그인 후 복사

이 코드에서 AsyncConnectTask는 백그라운드에서 연결 작업을 수행하고 결과를 부울 값으로 반환합니다. 그러나 메인 스레드에는 이 부울 값을 검색하는 메커니즘이 없습니다.

사용자 정의 인터페이스 접근 방식

AsyncTask에서 부울 값을 반환하려면 AsyncTask를 생성하는 활동이나 프래그먼트에서 구현될 사용자 정의 인터페이스입니다. 예:

public interface MyInterface {
    public void myMethod(boolean result);
}
로그인 후 복사

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿