我在如何在主要使用progressDialog的AsyncTask上實現「創建加載屏幕」的兩難處境。關於用於創建加載屏幕的AsyncTask
我在做什麼是我有一個方法,不需要輸入,只顯示一個textview。
私有類DownloadFilesTask擴展的AsyncTask {
那麼,我的方法做簡直是像1 + 1 = 2,但在存儲,然後得到顯示上一個TextView一個giganormous串的更復雜的方式。
所以我的問題是如何在長時間加載之前獲得進度對話框的結果?
我在如何在主要使用progressDialog的AsyncTask上實現「創建加載屏幕」的兩難處境。關於用於創建加載屏幕的AsyncTask
我在做什麼是我有一個方法,不需要輸入,只顯示一個textview。
私有類DownloadFilesTask擴展的AsyncTask {
那麼,我的方法做簡直是像1 + 1 = 2,但在存儲,然後得到顯示上一個TextView一個giganormous串的更復雜的方式。
所以我的問題是如何在長時間加載之前獲得進度對話框的結果?
private progressDialog pd;
public void runMethod(){
new doStuuff.execute();
}
private Class doStuff extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
//Everything in your code except for anything that is xml or relates with any view. Mostly calculations
return null;
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
//Your main background view code ends up falling here
pd.dismiss();
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
//Your optional view and where it starts
pd = ProgressDialog.show(View_Book_As_Whole.this, "Loading", "Please wait...");
}
}
我當時太小氣,不理解這個概念,但是一旦你理解它就相對容易。 onPreExecute()意味着它在任何事情之前運行,並且它首先優先,然後轉到doInBackground(),然後onPostExecute()它運行最後的任務。這全部在UI的背景中起作用。
Android已經有一個progress dialog class內置。我建議使用它,除非有什麼不適合你的需求。
我想要的是能夠在活動加載時首先顯示進度對話框。然而,它與整個事件加載的實際事件同時顯示。 – sdfwer 2012-03-21 13:17:27
如果下面提供的答案沒有真正回答你的問題,那麼描述是非常不明確的 - 那麼你應該重新設計你的問題,也許提供一些代碼片段來幫助我們理解你想要達到的目標。 – Egor 2012-03-20 21:43:57