2013-05-26 59 views
3

我有兩個活動Activity1和Activity2。 單擊按鈕時,我將從Activity1切換到Activity2。但是由於網速較慢,Activity2需要花費很多時間才能加載。顯示空白屏幕直到活動加載。如何在活動之間切換時顯示進度條

除了黑屏,我想顯示一個進度條,當Activity2準備就緒時,然後關閉進度條,而不會讓用戶感到沮喪。

我不知道如何做到這一點或開始這一點。我是android新手。 請幫助我建議的想法或請分享有關這個的任何鏈接!

在此先感謝!

+0

發佈您的代碼...... –

+0

我會更專注於固定活動2.使用Traceview和類似的技術,以確定是什麼原因造成它這麼長的時間。 – CommonsWare

+0

@CommonsWare,Activity2加載谷歌地圖。地圖花費時間來加載。所以,我想顯示進度條,直到地圖完全加載!那是我的想法。但不知道如何實現它! – Mahe

回答

0

使用加載屏幕(一個不確定的進度條或圓圈很好)或更好的方式啓動您的Activity2:緩存的數據,並將您的重量放在一個Thread上。 在線程結束時,移除進度條並顯示數據。

有了這種想法的,活性2將推出真正快速,可以顯示wathever你的數據加載

線程將避免遇到黑屏時想要的。

public class Activity2 extends Activity { 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     new Thread(new Runnable() { 
      public void run(){ 
       //All your heavy stuff here!!! 
      } 
     }).start(); 
    } 
} 

注意:您也可能更喜歡一個的AsyncTask,您可以在這裏看到不同的充方式有很大comparaison達到你想要的東西:

http://techtej.blogspot.be/2011/03/android-thread-constructspart-4.html

+0

這個想法很好!可以請分享有關此的任何鏈接!謝謝!! – Mahe

+0

增加了一些代碼。 –

0

ASyncTask是你在找什麼。它不應該很難實現。

1

您可以在活動2的onCreate中使用AsyncTask。在onPreExecute中顯示progressdialog。在onDoinBackground完成下載。當在onPostExecute中完成時,隱藏progressdialog並在UI中顯示內容。

對於示例代碼

private class YourTask extends AsyncTask<Void, Void, ContentType> { 
    protected void onPreExecute() { 
     //show progressdialog here 
    } 

     protected ContentType doInBackground() { 
      // download content 
      return content; 
     } 


     protected void onPostExecute(ContentType content) { 
      // hide progress dialog 
       // show the content 
     } 
    } 
+1

你能告訴導入用於ContentType ..? – 2017-01-04 06:05:41

+0

什麼是ContentType? –