我想在網格視圖中加載圖像時顯示進度對話框。
我面臨的問題是當前線程和進度對話線程同時運行。如何等待線程直到另一個線程完成
public String Method1(){
String output="";
final ProgressDialog aProgDialogL = ProgressDialog.show(this, "", "Loading...");
Thread thread = new Thread() {
public void run() {
//My codes
aHandlerL.post(new Runnable() {
@Override
public void run() {
//Post Runnable codes
aProgDialogL.dismiss();
}
});
}
};
thread.start();
/*
*
*
* OTHER CODES
*
*
*/
return output;
}
在上面的例子中,我需要運行Progress Dialog Thread中的代碼。完成執行後,我需要運行我的「其他代碼」。怎麼做?
。
我試過使用異步任務。在異步任務完成之前,方法1會被取消並重新生成字符串。
public String Method1(){
String result="";
new GetImages().execute();
return result;
}
public class GetData extends AsyncTask<Void, Void, Integer>{
@Override
protected void onPreExecute() {
aProgDialogL = ProgressDialog.show(Main.this, "", "Loading...");
}
@Override
protected Integer doInBackground(Void... params) {
//Progress Dialig Code
return null;
}
@Override
protected void onPostExecute(Integer result) {
aProgDialogL.dismiss();
//OTHER CODES
super.onPostExecute(result);
}
}
「其他代碼」究竟發生了什麼? UI操作還是別的? – Tudor
我不應該返回對象,直到進度對話框線程完成。 UI操作也在那裏。 – Vignesh
在onExExecute()中執行pd.show()並在onPostexecute()中關閉它。在doInBackGround() – Raghunandan