تالار گفتمان nCIS.ir

نسخه‌ی کامل: هنگ کردن برنامه به هنگام واکشی اطلاعات از دیتابیس بصورت مکرر
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام و خسته نباشید
برنامه ای ک نوشته شده از تیبل یک دیتا بیس اطلاعات رو دریافت میکنه و در اداپتر های مجزا برای زیباییی نمایش میده
بعد از چندین بار باز و بسته شدن فرم برنامه به حالت هنگ میره و هیچ پیام خطایی نمیده
ممنون میشم کمک کنید با تشکر

کد فرآخوانی 
 public void LoadList()
   {

       int ArraySplit = 0;
       DataBaseAccess dataBaseAccess = new DataBaseAccess(this);
       List<String> id = dataBaseAccess.Selectid(1, "servicecar", "CarSelect", myCarClass.PositionNewService);
       ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, id);


       for (int i = 0; i < arrayAdapter.getCount(); i++) {
           for (int k = 2; k < 25; k++) {

               String[] Separated = dataBaseAccess.Selectid(k, "servicecar", "CarSelect", myCarClass.PositionNewService).toString().split("\$");

               Separated[0] = Separated[0].toString().replace("[", "");
               Separated[0] = Separated[0].toString().replace("]", "");
               Separated[0] = Separated[0].toString().replace(",", "");
               Separated[0] = Separated[0].toString().replace(" ", "");

               if (!Separated[0].toString().equals("")) {
                   ModuleNameService[ArraySplit] = Separated[1].toString();
                   ModuleDistanceService[ArraySplit] = Separated[2].toString();
                   ModulePriceService[ArraySplit] = Separated[3].toString();
                   ModuleDateService[ArraySplit] = Separated[0].toString();
                   ArraySplit++;
               }
               AddPanel(arrayAdapter.getCount(), ModuleNameService, ModuleDistanceService, ModulePriceService, ModuleDateService, ModulePowerService);

           }
       }
       dataBaseAccess.close();

   }



کد فرآخوانی از دیتا بیس
   public List<String> Selectid(int getid,String SelectTable,String SelectColumn,int Contains) {
        List<String> list = new ArrayList<>();

       Cursor cursor = sqLiteDatabase.rawQuery("SELECT * FROM "+SelectTable+" WHERE "+SelectColumn+"="+Contains,null);
       cursor.moveToFirst();
       while (!cursor.isAfterLast()) {
           //for(int i=0;i<cursor.getColumnCount();i++) {
               list.add(cursor.getString(getid));
           //}
           cursor.moveToNext();
       }
       cursor.close();

       return list;
   }
پیشنهاد میکنم با کلاس SQLiteOpenHelper کار کنین و هربار به دیتابیس نیاز دارین، یه شئ جدید نسازین. درصورتی که پکیج آموزش مقدماتی اندروید رو خریداری کردین، توی جلسه‌ی بیستم درمورد کار با این کلاس توضیح دادم و درغیر اینصورت، همین کلاس رو توی اینترنت جستجو کنین، آموزش‌های زیادی برای کار باهاش وجود داره.