2011-05-09 40 views
0

如何在應用程序啓動期間顯示progressDialog。我已經在oncreate方法中顯示了progressDialog,並且在啓動應用程序時未顯示它。在Android應用程序啓動時使用ProgressDialog

我已經經歷了這樣: ProgressDialog not showing until after function finishes

我已經嘗試瞭解決方案,對上述問題進行說明。但它並不完美。

這裏是我的代碼:

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.dash); 

     progressDialog = ProgressDialog.show(this, "", "Loading..."); 

     //Run background UI thread 
     Thread laucherThread = new Thread(new Runnable() {    
      public void run() { 
       Looper.prepare(); //I had to include this to prevent force close error 
       startService(new Intent(DroidChirp.this,ChirpService.class)); 
       doBindService(); 
       Log.e(MY_DEBUG_TAG, "Prepairing to close the dialog"); 
       runOnUiThread(new Runnable() {      
        public void run() { 
         progressDialog.dismiss(); 
        } 
       }); 
       Log.e(MY_DEBUG_TAG, "Closed the dialog"); 
      } 
     }); 
     laucherThread.start(); 
    } 

我需要做的是

  • 顯示progressDialog直到所有的初始設置完成後

我正面臨的問題

  • ProgressDialog在啓動時未顯示。
  • 啓動應用程序時有延遲(顯示空白一段時間)。
  • ProgressDialog在完成初始設置之前出現。

任何人都可以建議我如何建立此功能。它是一個列表視圖爲每個選項卡的桌面佈局。

+0

爲什麼你需要ProgressDialog這裏。你在這裏沒有做任何後臺操作。你不需要ProgressDialog來啓動服務。 – Sujit 2011-05-09 09:38:51

+0

對不起,我沒有得到你!我的儀表板在服務連接時創建。一些方法正在服務中獲取初始數據。我使用基於活動的選項卡爲我的Tablayout。 – 2011-05-09 09:43:35

回答

0

如果您想要顯示進度對話框,同時提取數據或類似的東西,您需要使用AsyncTaskProgressDialog有界。看一個例子here