2010-02-09 33 views
11

此按鈕顯示在我的開始活動中。按下後,將啓動一項新活動,但這需要一些時間,因此在初始化新活動時會從互聯網收集一些數據。 這工作的一半。顯示進度對話框,但進度輪不旋轉。開始新活動時的進度對話框

有人可以告訴我爲什麼發生這種情況?

Button b4 = (Button) findViewById(R.id.Button01); 
     b4.setOnClickListener(new View.OnClickListener() { 
      public void onClick (View view) {  
      final ProgressDialog pd = ProgressDialog.show(pak.this, 
         "", "Working..", true); 

      new Thread(new Runnable(){ 
      public void run(){ 
       Intent intent = new Intent(); 
       intent.setClassName("sxe.pak", "sxe.pak.List"); 
       startActivity(intent);    
       pd.dismiss(); 
       } 
      }).start(); 

      } 
    }); 

THX

回答

8

你需要顯示進度在你的第二活動最開始的對話框,不是你的第一個。你需要在AsyncTask中完成數據下載工作。

見我回答這個更多的信息:

Android SplashScreen

+0

很好的回答,但只要線程不需要使用UI線程我寧願主題到的AsyncTask。 – pgsandstrom

+0

嗨mbaird,thx爲您的答案。我知道可以使用AsyncTask來異步工作,但在我的情況下,它不可用(或我不知道如何),因爲我想開始一個新的活動。 在第二個活動開始時啓動進度對話框不是一個選項,我試過了,但沒有運氣,導致顯示第一個活動,直到第二個活動開始完成。 如果我點擊按鈕,按鈕會改變它的顏色,然後顯示進程對話框,就像我期望它只有輪子不旋轉。這是唯一的問題。 – Andy

+1

@安迪,進度對話框不旋轉,因爲你正在UI線程中工作。通過AsyncTask或者線程或Runnable將下載工作移至單獨的線程。再次,如果你看看我給出的答案,並且嘗試將我的答案的onCreate()方法中發生的事情複製到第二個活動的onCreate()方法中的那個問題上,我保證它會起作用。 –

相關問題