بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

زمان بردن طولانی هنگام setAdapter در ListView

مدیریت گفتگو
mgh 12 سال پیش
آخرین تغییر: 12 سال پیش

سلام

من یه لیست ویو دارم که تعداد آیتم های داخل اون هم زیاد نیست. حد اکثر 30 تا

ولی زمانی که برای SetAdapte میبره خیلی زیاده(هر دفه حدود 4-5 ثانیه)

از طرفی چون این متد باید توصط Main Thread انجام بشه نمیتونم لودینگ داشته باشم.

چی کار کنم ؟!!!

نظرات

uncocoder 12 سال پیش
نباید مشکلی باشه، حتماً یک جای کار ایراد اساسی دارید. نوع آیتم ها، ساختارش و سورس کد قبل از SetAdapter رو باید بذارید.

پاسخ‌ها 1

مجتبی یگانه 12 سال پیش

اگر در طراحی الگوریتم اصلی مشکلی نیست ، که سبب ایجاد این وقفه بشه ، می تونید یک رشته ایجاد کنید ، تا زمانی که رشته در حاله کاره  یک دیالوگه غیر قابل بستن نمایش داده بشه ، حالا اگر دستگاهه کسی سریع تر باشه ، با این دیالوگ کمتر رو به رو میشه ، به هر حال انجام دادن هرکاری با یک رشته ی جدید باعث میشه عملکرد برنامه روان تر بشه ، کاربر کم تر اذیت بشه ، 

اینم یه روش جدید ، برای اجرای کد در UI Thread که خیلی کم دردسر تر از Handler ها هست :) 

Thread thread = new Thread(new Runnable() {
    @Override
    public void run() {
        runOnUiThread(new Runnable() {

            @Override
            public void run() {
             //دسترسی به عناصر با استفاده از MAIN UI !

            }
        });
    });
}

موفق باشید

نظرات

uncocoder 12 سال پیش
وا alu جان! این کجا ساده تر از Handler هست. شما به جای runOnUiThread بذاری G.handler.post فرقی می کنه؟ در ضمن با Handler می تونی postDelayed هم داشته باشی.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .