میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

کلاس Loader در اندروید

کلاس Loader به شما این امکان را می دهد تا داده های مورد نیاز را به صورت ناهمزمان (async) در activity یا fragment مربوطه بارگذاری نمایید. این کلاس می تواند منبع داده ها را رصد کرده (زیر نظر داشته) و زمانی که محتویات تغییر کردند، نتایج جدید را تحویل دهد. همچنین این امکان را فراهم می کند تا داده ها با تغییر در نحوه ی پیکربندی ذخیره شده و در زمان لازم (پس از ساخته شدن fragment ) بازگردانی شوند.

داده ها را می توان به وسیله ی Loader در حافظه ی نهان نگه داشت ( cacheکرد) و زمانی که تغییری در نحوه ی پیکربندی رخ می دهد، داده های ذخیره شده را بازگردانی نمود. کلاس های Loader از اندروید ۳٫۰ معرفی شده و بخشی از ( compatibility layer جهت پشتیبانی از نسخه های قدیمی) برای ورژن ۱٫۶به بعد اندروید محسوب می شود.

 


پیاده سازی کلاس Loader

می توانید از کلاس AsyncTaskLoader به عنوان یک پایه برای پیاده سازی های Loader خود استفاده نمایید. LoaderManager یک activityیا fragmentمی تواند چندین نمونه از Loader
را مدیریت کند. نحوه ی فراخوانی Loaderدر زیر به نمایش گذاشته شده است.

 

# start a new loader or re-connect to existing one
getLoaderManager().initLoader(0, null, this);

 

اولین پارامتر یک ID یا شناسه ی منحصر بفرد است که کلاس callback برای شناسایی Loader مورد استفاده قرار می دهد. دومین پارامتر ارسالی یک آبجکت bundle است که برای اطلاعات بیشتر به متد پاس داده می شود. سومین پارامتر ورودی متد ()initLoader ، کلاسی است که به محض شروع مقداردهی اولیه (کلاس callback ) فراخوانی می شود. این کلاس می بایست اینترفیس LoaderManager.LoaderCallbacks را پیاده سازی کند. در واقع مرسوم است activity یا fragment ای که از Loader استفاده می کند، همراه با آن اینترفیس LoaderManager.LoaderCallbacks را نیز پیاده سازی نماید .

Loader به طور مستقیم با فراخوانی متد () getLoaderManager().initLoader ایجاد نمی شود، بلکه کلاس callback یا بازفراخوان آن را در بدنه ی تابع () onCreateLoader خود ایجاد می کند.
هنگامی که Loader خواندن داده ها به صورت ناهمزمان را به اتمام می رساند، متد () onLoadFinished از کلاس callback صدا خورده می شود. در اینجا (داخل بدنه ی این متد) شما می تواند UI و ظاهر اپلیکیشن خود را با داده های جدید بروز آوری نمایید.

 


دیتابیس SQLite و پیاده سازی کلاس CursorLoader

چارچوب نرم افزاری اندروید ( framework ) یک کلاس به نام CursorLoader در اختیار توسعه دهنده قرار می دهد که پیاده سازی Loader را به صورت پیش فرض دربرداشته و اتصال به دیتابیس ( database connection ) SQLite را خود مدیریت می نماید.
برای کوئری گرفتن و درخواست داده از یک ContentProvider که مبتنی بر دیتابیس SQLite می باشد، برنامه نویسان اغلب از کلاس CursorLoader استفاده می کنند. این کلاس Loader در پس زمینه ( background thread
) از دیتابیس کوئری می گیرد، به همین جهت تعامل اپلیکیشن با کاربر مختل نشده و در نتیجه UI مسدود نمی شود.
کلاس CursorLoader جایگزین آبجکت های Activity-managed cursor که در ویرایش های قبلی اندروید بکار می رفتند، محسوب می شود.
در صورتی که Cursorنامعتبر شود ، متد () onLoadReset در کلاس callback فراخوانی می گردد.

 

 


امیدواریم آموزش کلاس Loader در اندروید نیز برای شما مفید واقع شده باشد و ادامه آموزش برنامه نویسی اندروید رو دنبال کنید . برای مطالعه پست‌ها بیشتر ، ما را در مدرسه کدنویسی تلگرام  و یا در تی جوان اینستاگرام دنبال کنید.

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.
ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟