سؤال

في "onCreate" أقوم بتنزيل البيانات من الويب. مدة تنزيل البيانات هي 10 ثانية. لا يمكنني الحصول على ProgressDialog أثناء تنزيل البيانات. إليكم الكود الخاص بي ، لكن ProgressDialog لا يظهر:

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();
}
هل كانت مفيدة؟

المحلول

أفضل طريقة للقيام بهذا النوع من الأشياء هي استخدامها AsyncTask من أجل عدم تجميد التطبيق أثناء تنزيل الملف. علاوة على ذلك ، ماذا لو أعطيت المستخدمين تجربة أفضل باستخدام مربع حوار شريط التقدم بدلاً من مربع حوار بسيط. ليس من الصعب تنفيذها ؛ يمكنك الاطلاع على مثال هنا: قم بتنزيل ملف مع Android ، وإظهار التقدم في ProgressDialog

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top