2012-02-07 35 views
5

Tüm gün boyunca arama yaparken bazı örnek kod veya öğreticiler bulmak için nasıl bir ilerleme çember oluşturmaya çalışıyor aradı. Bu görevin tamamlanması için gereken zaman buna göre değişir ve Thread.sleep (xxxx) 'i kullanan bir çok örnek vardır, ancak bu, verimli değildir. İşte yapmak istediğim şey, bir buton tıklandıktan sonra JSON kullanarak bir web servisinden alınan bir ListView yüklemek istiyorum. Liste görünümü mükemmel bir şekilde yükleniyor, ancak boyutuna bağlı olarak yüklenmek yaklaşık 5-10 saniye sürüyor, bu yüzden kullanıcı beklerken eğrilmeyi göstermek istiyorum. Birisi bunun nasıl elde edileceğine dair bazı örnek kodları paylaşabilir mi? android asyncTask iletişim kutusu

progDailog = ProgressDialog.show(loginAct,"Process ", "please wait....",true,true); 

new Thread (new Runnable() 
{ 
    public void run() 
    { 
     // your code goes here 
    } 
}).start(); 

Handler progressHandler = new Handler() 
{ 

    public void handleMessage(Message msg1) 
    { 

     progDailog.dismiss(); 
     } 
} 
+0

gibi assync arayabilirim? Cevabınızı bulursanız – brian

+0

. kabul edilen bir cevabı kontrol edin. – brian

+0

Lütfen yanıtımın sol tarafına bir onay işareti veriniz. – brian

cevap

5

ederiz.

class Load extends AsyncTask<String, String, String> { 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      ProgressDialog progDailog = new ProgressDialog(Activity.this); 
      progDailog.setMessage("Loading..."); 
      progDailog.setIndeterminate(false); 
      progDailog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
      progDailog.setCancelable(true); 
      progDailog.show(); 
     } 
     @Override 
     protected String doInBackground(String... aurl) { 
      //do something while spinning circling show 
      return null; 
     } 
     @Override 
     protected void onPostExecute(String unused) { 
      super.onPostExecute(unused); 
      progDailog.dismiss(); 
     } 
    } 
28

new Load().execute(); çağırmak için, aşağıdaki kodu deneyebilirsiniz size

+0

Teşekkürler Brian ve herkes ... Bu çok yardımcı oluyor. Hepsini bir araya getirdim .. –

+2

Öyleyse lütfen bir onay işareti bırakın. – brian

+0

ProgressDialog Hakkında (Activity.this); Yük sınıfında bir hata verir. Tabii ki. Ne kullanmalıyız? –

11
private class LoadAssync extends AsyncTask<String, Void, Void> { 



    protected void onPreExecute() { 

     ProgressDialog dialog; 
        dialog.setMessage("Loading..."); 
    dialog.show(); 
    } 

    protected Void doInBackground(final String... args) { 
     // you can do the code here 
     return null; 


    } 

    protected void onPostExecute(final Void unused) { 

     if (dialog.isShowing()) { 
      dialog.dismiss(); 
     } 

    } 
} 

u Benim cevabım sizin için yardımcı olur bu

LoadAssync mAsyync=new LoadAssync(); 
mAsyync.execute(null); 
İlgili konular