جلسه یازدهم-ارائه دهنده محتوا(Content Provider)

ارائه دهنده محتوا(Content Provider ):

ارائه دهنده محتوا کامپوننتی است که اطلاعات را برای سایربرنامه ها فراهم می نماید.بعضی از درخواستها توسط متدهای کلاس ContentResolver مدیریت می شود. ارائه دهنده محتوا از روشهای متفاوتی برای ذخیره داده ها استفاده می نماید از قبیل:ذخیره داده ها درون دیتابیس ، فایل ،یا حتی درون شبکه .

android_content1

 

گاهی اوقات نیاز به اشتراک گذاشتن داده ها میان چندین برنامه وجود دارد این جایی است که ارائه دهندگان محتوا بسیار مفید هستند.

ارائه دهندگان محتوا این امکان را به شما می دهند که داده ها را دریک جا متمرکز نمایید سپس بسیاری از برنامه های دیگر می توانند در صورت نیاز به داده ها دسترسی پیدا کنند.

ارائه دهنده محتوا رفتار بسیار بسیار شبیه به یک پایگاه داده دارند که در آن شما می توانید ازآن پرس و جو تهیه نمایید ، محتوا را ویرایش نمایید و همچنین محتوا را اضافه و یا حذف نمایید با استفاده از متدهای insert() ، update() ، delete() و query().در بیشتر مواقع داده ها درون دیتا بیس SQLITE قرار میگیرند.

ارائه دهنده محتوا زیر کلاس ، کلاس ContentProvider می باشد و باید گروهی از APi های استاندارد را جهت تراکنش سایر برنامه ها پیاده سازی نماید.

 

Content URIs:

برای گزارش گیری از ارائه دهنده محتوا ، رشته پرس و جو در قالب یک URI و به فرمت زیر است:

<prefix>://<authority>/<data_type>/<id>

جزئیات قسمت های مختلف URI:

android_content2

ایجاد ارائه دهنده محتوا :

برای ایجاد ارائه دهنده محتوا مراحل زیر را دنبال نمایید:

۱-اول از همه یک کلاس ارائه دهنده محتوا ایجاد نمایید که از کلاس ContentProviderbase ارث بری نماید

۲-تعریف آدرس URI برای دسترسی به محتوا.

۳-ایجاد دیتابیس جهت نگهداری داده ها.معمولا اندروید از دیتابیس sqlite استفاده می نماید و فریم ورک نیاز به override کردن متد onCreate() دارد که از متد SQLite Open Helper برای ایجاد یا بازکردن پایگاه داده ارائه دهنده استفاده خواهد کرد.هنگامی که نرم افزار راه اندازی شد متد onCreate() handler هر یک از ارائه دهندگان محتوا از طریق thread اصلی برنامه فراخوانی می شود.

۴-در مرحله بعد شما به پیاده سازی پرس و جو های ارائه دهنده محتوا برای ایجاد عملیاتهای خاص پایگاه داده ها ی مختلف نیاز دارید.

۵-در نهایت ارائه دهنده محتوا را با استفاده از تگ <provider> درون activity ثبت نمایید

در اینجا لیستی ازمتدها جهت کار کردن ارائه دهنده محتوا که نیاز به override کردن دارد را ذکر نموده ایم:

android_content3

 

– onCreate() : زمانی این متد فراخوانی می شود که ارائه دهنده آغاز شده است.

– query() :این متد درخواست ها را از کلاینت دریافت می کند و مقدار بازگشتی از نوع Cursor می باشد.

– insert() : این متد رکوردی را در ارائه دهنده محتوا اضافه خواهد کرد.

delete()-: این متد رکورد موجود در ارائه دهنده محتوا را پاک خواهد کرد.

update()- این متد رکورد موجود در ارائه دهنده محتوا را بروزرسانی خواهد کرد.

– getType() : این متد نوع MIME type موجود در URI را باز می گرداند.

مثال:

این مثال نحوه ایجاد ارائه دهنده محتوا را نمایش خواهد داد:

android_content4

فایل src/com.example.My Application/MainActivity.java:

 

فایل src/com.example.My Application/StudentsProvider.java :

 

فایل AndroidManifest.xml

 

فایل res/layout/activity_main.xml:

 

از محتوای موجود در فایل res/values/strings.xml اطمینان حاصل نمایید:

 

برنامه را اجرا نمایید:

android_content5

مقداری را برای فیلدهای Name و Grade وارد نمایید سپس دکمه ADD NAME را فشار دهید اظلاعات وارد شده به دیتابیس اضافه خواهد شد و پیغامی که نشان دهنده URI و شماره رکورد اضافه شده می باشد نمایش داده خواهد شد از متد insert() برای اضافه کردن دانش آموز استفاده نموده ایم.

 




پاسخ دهید

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

*

code