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

مشکل لود شدن لیست ویو با حجم داده زیاد

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

من با استفاده از پروژه لیست ویو استاد یه لیست ویو درست کردم. قراره با باز شدن اکتیویتی در onCreate لیست ویو تمام پیامک های کاربران را نمایش دهد. اما برای پیامک های خیلی زیاد لیست ویو پس از تاخیر چند ثانیه ای پر می شود و در این زمان نیز برنامه فریز می شود و پس از آن داده ها لود می شود. 

لطفا کمک کنید که چطور باید لیست ویو پر شود که این مشکل پیش نیاید.

این هم کد:

در onCreate :

adapter = new AdapterNote(SampleApplication.payamak);
lstContent.setAdapter(adapter);
getSMSContacts(this.getContentResolver());


 
public void getSMSContacts(ContentResolver cr) {
Uri inboxUri = Uri.parse("content://sms/inbox");
Cursor smsha = cr.query(inboxUri, null, null, null, null);
String body = null;
String number = null;
String date = null;
String pid = null;
SampleApplication.payamak.clear();
while (smsha.moveToNext()) {
try {
body = smsha.getString(smsha.getColumnIndexOrThrow("body")).toString();
date = smsha.getString(smsha.getColumnIndexOrThrow("date")).toString();
number = smsha.getString(smsha.getColumnIndexOrThrow("address")).toString();
pid = getContactName(getApplicationContext(), number);
////////////////////////////
StructNote note = new StructNote();
note.title = number;
note.description = body;
note.name = pid;
note.date = mydate;
note.done = false;
////////////////////////////
SampleApplication.notes.add(note);
}
catch (Exception e) {}
}
smsha.close();
}


نظرات

mortex 9 سال پیش
لینکی که معرفی کردید مشکل منو رفع نکرد
javad-p 9 سال پیش
دوست عزیز اگه برای پروژه خودتون میخواید بهتون پیشنهاد میکنم که از ریسایکل ویو استفاده کنید که خیلی داینامیک تر و زیبا تر کاربردی و مدرن تره
مهدی 9 سال پیش
از ترد استفاده کنید.
mortex 9 سال پیش
دوستان ممنون، میشه راهنمایی کنید کدی که فرستادم رو چطور باید با ترد هندل کنم، من با AsyncTask نوشته بودم اما باز هم نتیجه دلخواه رو نگرفتم
mortex 9 سال پیش
javad-p ممنون، ولی فکر نکنم ریسایکل ویو هم بتونه به تنهایی از پس حجم داده های زیاد بر بیاد، احتمال زیاد باید از همون ترد استفاده کرد
mortex 9 سال پیش
دوستان من میخوام بجای اینکه صبر کنه تا یکجا پیامکها رو بگیره به عنوان مثال 20 تا 20 تا اینکار رو انجام بده تا خللی در کار ایجاد نشه برای این کار چیکار باید کنم؟
javad-p 9 سال پیش
mortex جان نمیشه گفت که نمیتونه ریسایکل ویو شاید نتونه ..شما امتحان کن شاید شد.
Rabbit 9 سال پیش
برای اینکه بخش بخش بگیرید داخل اندروید نباید کاری کنید. سمت سرور باید مثلا 20 تا 20 تا پیام‌ها رو بفرسته و همچنین یک سری داده دیگه هم بفرسته (بهش میگیم meta deta) که نشون میده الان کودوم 20 تا پیام فرستاده شده. مثلا اول 20 تای اول رو میفرسته و همراه با اون میگه که این 20 تای چندم بود. بعد شما وقتی کاربر به انتهای لیست رسید درخواستی برای 20 تای دوم ارسال میکنید. برای نوشتن کد هم این لینک رو نگاه کنید فکر میکنم همینی باشه که میخواین
امید 9 سال پیش
recyclerView خودش تمام کارهارو انجام میده، فقط کافیه از recyclerView استفاده کنید. تا استفاده نکنید باورتون نمیشه.

هنوز پاسخی ثبت نشده است


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