2010-02-09 23 views
11

Bu düğme benim başlangıç ​​etkinliğimde gösterilir. Basıldıktan sonra yeni bir etkinlik başlatılacak, ancak bu yeni aktivitenin başlatılmasının bir miktar zaman alması, bazı verilerin İnternet'ten toplanması. Bu, yarı çalışır. İlerleme diyaloğu gösterilir ancak ilerleme tekerleği dönmüyor. Birisi bana bunun neden olduğunu söyler mi?İlerleme Durumu Yeni aktiviteye başlarken iletişim kutusu

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

cevap

8

Sen 2 Aktivite en başında iletişim ilerleme, senin ilkini göstermek gerekir. Ve veri indirme işinizi bir AsyncTask'ta yapmanız gerekir.

Android SplashScreen

+0

İyi cevabı, ama sürece iplik UI iş parçacığı kullanmak gerek yok bu kadar AsyncTask Konu tercih ediyorum:

fazla bilgi için bu cevabım bakın. Cevabınız için – pgsandstrom

+0

Merhaba mbaird. AsyncTask'ı eşzamansız çalışmaya kullanma olasılığının farkındayım ama benim durumumda kullanılamıyor (ya da nasıl olduğunu bilmiyorum) çünkü yeni bir Aktivite başlatmak istiyorum. 2. Aktivitenin en başındaki ilerleme diyaloğunun başlatılması bir seçenek değildir, şanssız bir şekilde denedim, çünkü ilk Aktivitenin ikincisinin başlangıcına kadar gösterilmesine sebep olun. Düğmeye basarsanız, düğme rengini değiştirir ve işlemin ardından iletişim kutusu SADECE tekerleğin dönmediğini gösterir. Tek sorun budur. – Andy

+1

@Andy, UI iş parçacığında çalışma yaptığınız için ilerleme iletişim kutusu dönmüyor. İndirme işinizi AsyncTask veya sadece bir Thread veya Runnable aracılığıyla ayrı bir iş parçacığına taşıyın. Yine, yukarıda verdiğim cevaplara bakarsanız ve 2. etkinliğinizin onCreate() yönteminde bu soruya cevabımın onCreate() yönteminde neler olup bittiğini kopyalamaya çalışırsanız, çalışacağına söz veriyorum. –