시간이 많이 걸리는 작업 백그라운드 처리를 수행하기 위해 비동기 작업(AsyncTask)이 사용되는 경우가 많습니다. 그러나 성공적인 연결을 나타내는 부울 값을 다시 전달해야 하는 경우 어떻게 이를 달성할 수 있습니까?
AsyncTask에서 부울 값을 반환하려면 인터페이스를 활용하여 정의할 수 있습니다. 결과를 받는 방법입니다. 방법은 다음과 같습니다.
public interface MyInterface { public void myMethod(boolean result); }
내부 AsyncConnectTask, 인터페이스를 생성자에 인수로 삽입합니다.
public AsyncConnectTask(Context context, String address, String user, String pass, int port, MyInterface mListener) { mContext = context; ... this.mListener = mListener; }
작업을 초기화할 때 , 부울을 처리하는 인터페이스 구현을 제공합니다. 결과.
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();
이 접근 방식 성공적인 연결이든 실패이든 결과가 인터페이스를 통해 전달되고 UI 스레드에서 실행되도록 보장합니다. onPostExecute 메소드입니다.
위 내용은 Android의 AsyncTask에서 부울 결과를 어떻게 반환할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!