2012-03-20 31 views
0

我在如何在主要使用progressDialog的AsyncTask上实现“创建加载屏幕”的两难处境。关于用于创建加载屏幕的AsyncTask

我在做什么是我有一个方法,不需要输入,只显示一个textview。

私有类DownloadFilesTask扩展的AsyncTask {

那么,我的方法做简直是像1 + 1 = 2,但在存储,然后得到显示上一个TextView一个giganormous串的更复杂的方式。

所以我的问题是如何在长时间加载之前获得进度对话框的结果?

+0

如果下面提供的答案没有真正回答你的问题,那么描述是非常不明确的 - 那么你应该重新设计你的问题,也许提供一些代码片段来帮助我们理解你想要达到的目标。 – Egor 2012-03-20 21:43:57

回答

2
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的背景中起作用。

4

Android已经有一个progress dialog class内置。我建议使用它,除非有什么不适合你的需求。

+0

我想要的是能够在活动加载时首先显示进度对话框。然而,它与整个事件加载的实际事件同时显示。 – sdfwer 2012-03-21 13:17:27