1

我有MainActivity.java應用程序啓動時加載的活動類。我在名爲ServerOperation.java的sperate文件中使用asyncTask方法。我需要在asyncTask的onPreExecute方法中顯示進度條。我使用下面的代碼,但它不工作和應用程序崩潰:asyncTask中的進度對話框OnPreExecute方法Android

public class ServerOperation extends AsyncTask<Void, Void, ArrayList<Job>> { 
ProgressDialog progressDialog; 

@Override 
protected void onPreExecute() { 
    super.onPreExecute(); 
    MainActivity myActivity = new MainActivity(); 
    progressDialog = ProgressDialog.show(myActivity.getApplicationContext(),"PLEASE WAIT","LOADING JOBS...", true); 
} 
} 

我應該怎樣做對主要活動progressDialog工作?

謝謝。

+0

MainActivity是一個Activity類(extends Activity)嗎? – Raghunandan

+0

請張貼崩潰即logcat。 – berserk

+0

是MainActivity是活動類。 – Azeem

回答

3

你應該從來沒有創建一個Acitvity類的實例。它不是一個普通的Java類。

您可以通過活動上下文來的AsyncTask的構造

調用Aysnctask作爲

new ServerOperation(MainActivity.this).execute(params); 

在MainActivity

然後

Context mContext; 
public ServerOperation (Context context) 
{ 
     mContext =context; 

} 

然後

progressDialog = ProgressDialog.show(mContext,"PLEASE WAIT","LOADING JOBS...", true); 
+0

優雅的解決方案!謝謝... – Azeem

+1

@NidaSulheri歡迎您。只記得不要自己實例化Activity類。它在聲明中聲明,它有一個生命週期 – Raghunandan

+0

得到它。謝謝... – Azeem