2010-06-26 62 views
1

在「onCreate」中,我從web下載數據。下載數據的持續時間爲10秒。數據下載時我不想有ProgressDialog。這裏是我的代碼,但ProgressDialog沒有出現:ProgressDialog onCreate

public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    ProgressDialog dialog = ProgressDialog.show(Test.this, "", 
     "Loading. Please wait...", true); 

    try { 
     URL myURL = new URL("http://www.sample.com/"); 
     URLConnection ucon = myURL.openConnection(); 
     InputStream is = ucon.getInputStream(); 
     BufferedInputStream bis = new BufferedInputStream(is); 
     ByteArrayBuffer baf = new ByteArrayBuffer(50); 
     int current = 0; 
      while((current = bis.read()) != -1){ 
        baf.append((byte)current); 
      } 

      content= new String(baf.toByteArray()); 

    } 
    catch (Exception e) {} 
    dialog.dismiss(); 
} 

回答

1

最好的辦法做這樣的事情,以便當您正在下載文件被凍結的應用程序中使用AsyncTask。此外,如果您通過使用進度條對話框而不是簡單對話框爲用戶提供更好的體驗,該怎麼辦?這並不難實現;你可以在這裏看到一個例子:Download a file with Android, and showing the progress in a ProgressDialog

+0

謝謝你,這是偉大的。但在我的情況下,我不應該使用擴展形式AsyncTask的類,我需要使用從Activity擴展的類。我可以這樣做,不凍結我的應用程序與活動延伸?我只需要沒有進度條的簡單對話框。謝謝 – user345602 2010-06-26 12:09:05

+0

當然!你總是需要一個'活動'。在這種情況下,擴展AsyncTask的類是您的活動中的私有類。在這個例子中,我沒有編寫活動代碼來關注在這種情況下重要的事情:'AsyncTask' – Cristian 2010-06-26 14:34:02

+0

我解決了這個問題,謝謝。 – user345602 2010-06-26 22:49:00