2011-06-11 58 views
4

我有兩項活動。第一個執行第二個。ProgressBar參與活動

Intent i = new Intent(MyOne.this, MyTwo.class); 
        startActivity(i); 

問題:我的第二個活動確實在推出一些繁重的工作,因此推出幾個第二,它推出之前,我看到一個黑色的屏幕。

是否有任何方法來設置進度條或一些圖像,而不是這個黑屏?因爲我不認爲用戶會等待什麼,他不知道。我在第二項活動中嘗試設置setcontentview後設置進度條,但只有在活動完全啓動時,進度條纔會顯示。

回答

4

我建議你使用AsyncTask異步執行此操作。

短的例子:

ProgressDialog dialog; 
class YourTask extends AsyncTask<Void, Void, Void> { 
     protected void onPreExecute() { 
        dialog = ProgressDialog.show(...); 
     } 

     protected Void doInBackground(Void... unused) { 
      try { 
       // doSomethingHeavy(); 
        // publishProgress(...); 
      } catch(Exception e) { 
       //... 
      } 

      return null; 
     } 

     protected void onProgressUpdate(Void... unused) { 
     } 

     protected void onPostExecute(Void unused) { 
      dialog.dismiss(); 

     } 
    }