안드로이드 개발 질문/답변
(글 수 45,052)
안녕하십니까
개발중에 안되는 부분이 생겨서 질문 드립니다.
질문 요약: 프로그래스바가 네트워크를 통해 데이터를 받아오는 작업을 하면서 로딩중에 Back키가 안먹습니다.
기본 개발 방법은 다음과 같습니다.
loadingDialog = ProgressDialog.show(this, "로딩중",
"Loading...please wait", true, false);
Log.e("KBO","setContentView(R.layout.score_layout)");
Thread thread = new Thread(new Runnable() {
public void run(){
setArrDataFromHTML(sourceUrlString); //네트워크 통해 데이터를 받는 작업
handler.sendEmptyMessage(0);
}
});
thread.start();
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
loadingDialog.dismiss();
setContentView(R.layout.scoredetail_layout);
initScreen(); //View 갱신
fillScore(); //View 갱신
}
};
문제는 여기서 Back키를 누르면 동작하지 않습니다.
그리고 onKeyDown 메소드를 재정의 해줘도 마찬가지 입니다.
그래서 네트워크가 엄청 느려진 상황에서 Back키가 안먹어 문제가 있습니다.
답변 부탁드립니다.
감사합니다.
개발중에 안되는 부분이 생겨서 질문 드립니다.
질문 요약: 프로그래스바가 네트워크를 통해 데이터를 받아오는 작업을 하면서 로딩중에 Back키가 안먹습니다.
기본 개발 방법은 다음과 같습니다.
loadingDialog = ProgressDialog.show(this, "로딩중",
"Loading...please wait", true, false);
Log.e("KBO","setContentView(R.layout.score_layout)");
Thread thread = new Thread(new Runnable() {
public void run(){
setArrDataFromHTML(sourceUrlString); //네트워크 통해 데이터를 받는 작업
handler.sendEmptyMessage(0);
}
});
thread.start();
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
loadingDialog.dismiss();
setContentView(R.layout.scoredetail_layout);
initScreen(); //View 갱신
fillScore(); //View 갱신
}
};
문제는 여기서 Back키를 누르면 동작하지 않습니다.
그리고 onKeyDown 메소드를 재정의 해줘도 마찬가지 입니다.
그래서 네트워크가 엄청 느려진 상황에서 Back키가 안먹어 문제가 있습니다.
답변 부탁드립니다.
감사합니다.
이 메소드를 이용하세요 cancelable을 true로 하시고 cancelListener에 백버튼 누르면 어찌할건가를 넣어보세요.