이 내가 서버, 에서 데이터를 수신 할 때까지해서 ProgressDialog를 보여 내가 가진 경우 (items.size가> 0 경우)해서 ProgressDialog가 기각 될 서버에서 결과를 원하는 내 코드runonuiThread UI 루프
이다; 하지만이 코드를 실행하면 서버에서 데이터를 받지만 runonuiThread에서 progressdialog를 실행합니다. 나는 ThreadInfo에 로그 할 때
List<ServerData> items = new ArrayList();
progressdialog.show();
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
HttpRequest...
Gson gson = new Gson();
Type type = new TypeToken<List<ServerData>>(){}.getType();
items = gson.fromJson(String,type);
Log.d("ThreadInfo","" + items.size);
runOnUiThread(new Runnable() {
@Override
public void run() {
if(items.size > 0){
progressdialog.dismiss();
}
}
});
}
});
는, 그것은 1 하지만 여전히해서 ProgressDialog가 실행되고 사라지지 items.size에게 값을 전송합니다.
질문, items.size가 0이 아닌데 어떻게 progressdialog를 닫을 수 있습니까?
혹시 궁금한 점이 있으면 알려주세요.
쓰기와 같은 코드를 변경해야합니다. 그것은 당신이 runonUIthread를 조건문에 써야한다는 것을 의미합니다. (items.size> 0) {} –
@Rajesh runonuithread가 아니라는 것을 의미합니까? 하지만 runonuithread에 대해 알고 있는데, 내가 UI를 변경할 때, 그럴 것입니다. 그래서 progressdialog를 넣습니다. –
왜 간단한 비동기 작업을 사용하지 않습니까? – Shmuel