[Java] 안드로이드 : AsyncTask에 함수 참조 전달


Answers

자바에서는 함수가 JavaScript보다 일등 시민권에 덜 부합합니다. AsyncTask는 클래스의 메서드로 콜백을 제공하며이를 재정의해야합니다.

웹 요청을하는 doInBackground 구현을 사용하여 AsyncTask의 하위 클래스 인 android로 HTTP 요청 만들기를 참조하십시오.

서로 다른 콜백을 사용하여 여러 HTTP 요청을 수행하려는 경우 RequestTask를 재정 의하여 다른 콜백 구현을 사용하여 onPostExecute를 구현할 수 있습니다. 익명 클래스를 사용하여 자바 스크립트 콜백이 일반적으로 사용하는 클로저를 시뮬레이트 할 수 있습니다.

new RequestTask(){
    @Override
    public void onPostExecute(String result) {
        // Implementation has read only access to 
        // final variables in calling scope. 
    }
}.execute("http://stackoverflow.com");

Xaver이 보여 주듯이 리스너를위한 완전한 인터페이스를 만들 수도 있습니다. 이것은 몇 가지 기본 onPostExecute 함수를 구현하고 특정 호출에 대해 이러한 기본 구현 중 하나를 선택하려는 경우 유용합니다.

Question

나는 안드로이드에 익숙하며 웹 개발에 익숙합니다. 자바 스크립트에서 비동기 작업을 수행하려는 경우 함수를 인수로 전달합니다 (콜백).

http.get('www.example.com' , function(response){
   //some code to handle response
});

안드로이드의 AsyncTask 하여 동일한 작업을 수행 할 수 있는지, onPostExecute() 메소드에 대한 함수 참조를 전달하는지, 그리고 실행할지 궁금합니다.

어떤 제안?