سؤال

أنا جديد نسبيًا في عالم Android ، ولا يزال نموذج واجهة المستخدم/الخيط مربكًا.

هذا ما أحاول القيام به:

قم بتحميل البيانات من معالجة الويب الخاصة بهم ، تظهر لهم عرض ALERTDIALOG إذا كانت هناك مشكلة

أنا أفعل مثل هذا حاليًا ، لكنني لست متأكدًا من أن استخدام العديد من الخيوط مثل هذا هو أفضل طريقة للقيام بذلك.

داخل oncreate ()

  final ProgressDialog pd = ProgressDialog.show(this, "", loadingText, true);
  final AlertDialog.Builder b = new AlertDialog.Builder(this);

  new Thread(new Runnable() {

   @Override
   public void run() {
    try {
     loadResorts();
    } catch (ResortsRetrievalException e) {
     runOnUiThread(new Runnable() {
      @Override
      public void run() {
       b.setMessage(R.string.resorts_retrieval_error)
       .show();
      }
     });
    }
    pd.dismiss();
   }
  }).start();

وتنتهي طريقة LoadResorts الخاصة بي

  final BaseAdapter a = new ResortAdapter(this, R.layout.resort_item, resorts);

  runOnUiThread(new Runnable() {
   @Override
   public void run() {
    resortsList.setAdapter(a);
   }
  });

لدي موضوع واحد ومكالمتين من RunonuithRead لذلك. أشعر أنه يمكن أن يكون هناك حل أفضل دون الحاجة إلى التعامل مع هذه الخيوط. هل انا على حق؟

شكرًا

هل كانت مفيدة؟

المحلول

يستخدم Asynctask - تم إنشاؤه لهذا النوع من السيناريوهات: تشغيل مهمة خلفية أو عملية (طويلة) ، مع الاستمرار في تحديث واجهة المستخدم بالطريقة الصحيحة (على EDT).

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