2
는 여기에 문제Android 진행률 대화 상자가 너무 늦게 표시 되었습니까?
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
progressDialog = ProgressDialog.show(ContactMainActivity.this, "",
"Loading. Please wait...",true);
setContentView(R.layout.contactlist);
contactListView=getListView();
contactListView.setTextFilterEnabled(true);
contactListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
Thread t = new Thread() {
public void run() {
try{
runOnUiThread(new Runnable() {
public void run() {
//stuff that updates ui
queryAllRawContacts();
progressDialog.dismiss();
}
});
registerForContextMenu(contactListView);
} catch (Exception e) {
Log.e("tag", e.getMessage());
}
// dismiss the progress dialog
}
};
t.start();
}
이 내 활동 클래스의에서 onCreate 방법입니다.
이 활동은 실제로 탭 위젯의 한 탭입니다. 그래서이 탭을 클릭하고 활동을 실행하면 약 2 초를 기다린 다음 10 밀리 초와 같은 진행 대화 상자를 표시하고 데이터로 UI를 업데이트합니다. 진행률 대화 상자를 닫습니다. 탭을 클릭하자마자 진행 대화 상자가 표시되고 데이터를로드하는 데 약 2 ~ 3 초가 걸립니다. UI를로드하고 업데이트 한 후 진행률 표시 줄이 닫힙니다.
감사
내가 말한대로 변경했습니다. 이제 실행하면 즉시 나타납니다. 그러나 그것이 기각되면 앱을 죽입니다. 그것은 UI를 업데이 트하지 않니? – akd
앱에 다른 문제가 있어야합니다. 당신은 logcat 뭐라고합니까? –
고맙습니다. 기본적으로 작동했습니다. 나는 contactListView.setAdapter (adapter)를 옮겼습니다. 기본적으로 Ui를 업데이트하는 runOnUithread 메소드를 호출합니다. 이제 매력처럼 작동합니다 :) 감사합니다. – akd