onPostExecute
이 실행될 때 호출 할 AsyncTask에 이벤트 리스너를 등록합니다.
public class Example extends AsyncTask<Void, Void, Void> {
public interface ExampleListener {
public void onStart();
public void onProgress();
public void onFinish();
}
private ExampleListener listener;
public Example(ExampleListener listener) {
mListener = listener;
}
@Override
public void onPreExecute() {
...
mListener.onStart();
...
}
@Override
public void onProgressUpdate(Void... v) {
...
mListener.onProgress();
...
}
@Override
public void onPostExecute(Void result) {
...
mListener.onFinish();
...
}
}
필요한 디자인에 맞게 패턴을 사용자 정의하십시오. 리스너가 각 이벤트에 대해 가질 필요가있는 인터페이스 매개 변수에 대한 매개 변수를 포함하십시오. Example.ExampleListener
을 구현하는 클래스가있는 경우 new Example(this).execute()
을 호출하기 만하면됩니다.
나는 listener.onFinish()가 호출 될 때 nullpointerexception을 얻었습니다. 하지만 난 생성자에서 수신기를 초기화했습니다 – Cheetah
'onFinish()'메서드 또는 당신이'onFinish()'를 호출했을 때 nullPointerException을 얻었습니까? – DeeV
내가 onFinish()를 호출 할 때. 청취자가 null 같아 보이는 것 같습니다. – Cheetah