1
채팅이로드되는 동안 progresscircle을 표시하려고합니다. 그래서 나는 보이지 않는 것으로 설정된 가시성을 넣었습니다. 이제는 가시성을 onPreExecute()
으로 설정하고 onPostExecute()
을 보이지 않게 설정했습니다. 동그라미가 표시되지만 채팅이 이미로드 된 후에 사라지지 않습니다. 누군가 내 실수를 말할 수 있습니까? :Asynctask에서 진행 상황 표시
@Override
public void onPreExecute() {
MainActivity.pbReadChat.setVisibility(ProgressBar.VISIBLE);
}
@Override
public Map<String, ArrayList<String>> doInBackground(String... strings) {
//...
return result;
}
public void onPostExecute(Map<String, ArrayList<String>> result) {
super.onPostExecute(result);
MainActivity.pbReadChat.setVisibility(ProgressBar.INVISIBLE);
}
편집 O : 지금은 사라하지만 채팅은 이미 내가 생각하는 내 비동기 클래스의 중요한 것들이다 누군가가 나에게
대신
onCancelled()
이 호출됩니다. 내 생각 엔 onPostExecute()가 호출되지 않습니다. 중단 점을 삽입하여 검사 할 수 있습니다. doInBackground()의 코드가 문제에 대해 더 많은 것을 밝힐 수 있습니다. –왜 호출되지 않습니까? 비동기가 다음 세 단계를 수행한다고 생각했습니다. onpreexecute, doinbackground 및 onpostexecute ... doinbackground가 끝나면 왜 원이 표시됩니까? – Phil
doInBackground가 돌아 오면 onPostExecute()가 호출됩니다. 그렇지 않은 경우 (무한 루프 또는 예외 또는 취소 된 작업으로 인해) onPostExecute()가 호출되지 않습니다. –