我有一個小問題,我希望你能幫助我。)ProgressDialog在線程工作在Android
麻煩的是,這ProgressDialog只顯示加載的run()之後,但我需要證明它在啓動和顯示它在加載一些數據時。我把:「dialog = ProgressDialog.show(CategoriesListActivity.this,」工作...「,」加載數據「,真);」在run()方法中,但是相同。我在Log.i()中打印一些信息(int i ++)並放置ProgressDialog的標題。方法正常工作,但不顯示ProgressDialog。我已經閱讀了一些信息,說明某個線程阻塞了另一個線程(我創建的),這就是爲什麼不顯示progressDialog,但無法執行任何操作。謝謝。
public void run() {
/** getting there long execution **/
handler.sendEmptyMessage(0);
}
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
// stop and hide dialog
dialog.dismiss();
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_
dialog = ProgressDialog.show(CategoriesListActivity.this, "Working...",
"Loading data", true);
// start new thread where get long time execution
Thread thread = new Thread(this);
thread.start();
//wait while data is loading, 'cause I need use variable from calculation
// in "EfficientAdapter" later
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
ListView l1 = (ListView) findViewById(R.id.list);
l1.setAdapter(new EfficientAdapter(this));
}