2012-09-06 44 views
0

下面是我的代碼:工作正常,但對話框沒有顯示。對話框應該打開與ASyncTask啓動和關閉ends.how是可以做到的嗎? 帶對話框和方法調用的AsyncTask?


    Public class RootClass 
    { 
    public ProgressDialog dialog; 
    public List methodA(String a) 
    ---- 
    ----

Class childClass extends AsyncTask<Void,Void,Void> { @Override protected void onPreExecute() { dialog = ProgressDialog.show(RootClass.this,"Please wait", "Message"); } @Override protected Void doInBackground(Void... params) { ---- --- --- List<String> B=methodA(String a); ----- ----- } @Override protected void onPostExecute(Void result) { dialog.dismiss(); return; } } }</pre>
+0

你記錄了時間差異,也許Asynctask越來越快速 – nandeesh

+0

第一種可能性:你的doInBackground()有一個非常小的任務要做...所以對話框出現並且非常快速地變暗(不明顯)... 檢查此...嘗試評論dialog.dismiss() 第二種可能性:你沒有正確調用asyncTask .... –

+0

沒有..它採取差不多一分半鐘.. – lakhani

回答

0

你RootClass應該在onCreate方法擴展Activity類

public class RootClass extends Activity 
+0

了 – lakhani

0

。在非常事件,當你要啓動異步任務寫

dialog = ProgressDialog.show(RootClass.this,"Please wait", "Message"); 

你不能更新在doiin backgroung()的方法具UI ,,

後來onPostExecute(),dialog.dissmiss ;.

-1

而不是使用 - public ProgressDialog dialog;

嘗試using-- public Dialog process;

和異步TAKS使用此代碼

protected void onPreExecute() 
{ 
progress = ProgressDialog.show(YourActivity.this, "Please wait", 
       "Loading..", true); 
} 

protected void onPostExecute(String result) { 
super.onPostExecute(result); 
if (progress.isShowing()) { 
progress.dismiss(); 
} 

希望這有助於!

相關問題