2010-06-26 5 views
1

"onCreate"에서 웹에서 데이터를 다운로드하고 있습니다. 데이터를 다운로드하는 데 걸리는 시간은 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에서 확장하는 클래스를 사용해야합니다. 활동 연장으로 내 앱을 정지시키지 않을 수 있습니까? 나는 progressbar없이 간단한 대화 만 필요하다. 감사합니다 – user345602

+0

물론! 항상 '활동'이 필요합니다. 이 경우'AsyncTask'를 확장 한 클래스는 여러분의 액티비티 안에있는 private 클래스입니다. 예제에서 나는이 경우 중요한 것에 초점을 맞추기 위해 액티비티 코드를 작성하지 않았다 :'AsyncTask' – Cristian

+0

나는이 문제를 해결했다. 고마워. – user345602