리스너 interface 하나 만들어서 TestAsync 클래스 생성자에 추가하고
onPostExecute에서 리스너로 값을 전달하면 됩니다.
예를 들어 onPostExecute에서 result라는 int 값을 받고 싶다면
1. 인터페이스 생성 (네이밍은 잘아서 잘 하시기 바랍니다)
interface Listener {
public void onPost(int result);
}
2. 인터페이스 초기화
Listener mListener = new Listener() {
@Override
public void onPost(int result) {
//Todo something
}
};
3. 인터페이스 AsyncTask에 전달
Async a = new Async(this, mListener);
4. AsyncTask에서 리스너에 값전달
class Async extends AsyncTask {
Listener listener;
public Async(Context context, Listener listener) {
this.listener = listener;
}
@Override
protected void onPostExecute(int result) {
if (this.listener != null) {
this.listener.onPost(result);
}
}
}