2012-06-13 235 views
0

當我的應用程序啓動一個通過SD卡遞歸迭代的文件剪貼片被啓動時。你可以想像,這需要相當長的時間。在我的epad變壓器上,可能需要30到40秒的時間來衝擊32GB的存儲空間。Android加載屏幕

該活動由兩個片段完成,這兩個片段位於主活動的主佈局上。

顯然,如果需要加載時間,我需要做一些事情來提醒用戶。但是,從我讀過的內容來看,我無法在加載屏幕後面的背景中啓動主要活動。我試圖放下進度條,但也失敗了。

那麼,有什麼建議嗎?

編輯

我只是讀了關於使用片段內的AsyncTask。我喜歡使用一個進度條,無論是緩慢的列表片段內,或在啓動畫面,或者只是在主視圖

+2

AsyncTask with ProgressDialog是我該怎麼做的。 – nullpotent

+1

進度條在這裏肯定是有意義的。還要確保你正在使用後臺線程來完成你的處理,也許通過一個AsyncTask。如果您在使用進度條時遇到特定問題,則應在此處提供有關該問題的詳細信息。 – kabuko

+0

也可以在'DialogFragment'中使用'AsyncTaskLoader'。例如,請查看以下示例:http://android.codeandmagic.org/2011/07/android-fragments-saving-state-and-screen-rotation/ –

回答

0

做這樣的事情

LoadTask load; 

public class LoadTask extends AsyncTask<Void, Integer, Boolean> { 

     int prog = 0; 

     @Override 
     protected Boolean doInBackground(Void... params) { 

      //All your loading code goes in here 

      publishProgress(prog++); //Use this to update the progress bar 

      publishProgress(-1) //Use this to open other app 
      return false; 
     } 

     protected void onProgressUpdate(Integer... progress) { 
      if(progress[i] == -1) 
       //open other app here 

      for(int i = 0; i < progress; i++){ 
        //set progress here with progress[i]; 
      } 
     } 


} 

然後啓動異步任務使用

load = new LoadTask(); 
load.execute(); 
+0

謝謝,我今天看一看! –

+0

沒問題:-)只是評論任何更多的幫助,請記住接受它,如果你想要什麼。 – FabianCook