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

Service در اندروید

مبحث جاری نحوه ی استفاده از سرویس ( Service ) های پیش فرض در اندروید، پیاده سازی و استفاده از سرویس های را شرح می دهد. این آموزش مبتنی بر ویرایش ۶٫۰ اندروید می باشد.

Service یک کامپوننت نرم افزاری است که در پس زمینه اجرا شده و مستقیما با کاربر تعامل ندارد. از آنجایی که سرویس فاقد است، طبیعتا به چرخه ی حیات یک activity نیز متصل نمی باشد.

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

سرویس ها دارای اولویت سطح بالاتری نسبت به activityهای غیرفعال/غیر قابل مشاهده در UI هستند و از این رو احتمال اینکه اندروید آن ها را به صورت خودکار خاتمه دهد بسیار پایین است. اندروید به شما این امکان را می دهد تا سرویس ها را طوری تنظیم کنید که اگر به هر دلیلی مجبور به حذف این سرویس ها از حافظه شد، به مجرد قرار گرفتن منابع کافی در اختیار سیستم، قادر باشد آن ها را مجددا راه اندازی کند.

می توان به سرویس ها اولویت یکسان و برابر با ACTIVITY های حاضر در پیش زمینه (FORGROUND) اختصاص داد. در این سناریو لازم است یک notification قابل مشاهده و فعال در UI برای سرویس های مربوطه لحاظ نمایید. این روش بیشتر برای سرویس هایی بکار می رود که یک فایل ویدیویی یا موسیقی را پخش می کند.

 


سرویس ها و پردازش پس زمینه ای (background processing)

به صورت پیش فرض، سرویس در همان فرایندی اجرا می شود که thread اصلی اپلیکیشن در آن حال اجرا است. به همین جهت توسعه دهنده بایستی از پردازش ناهمزمان در سرویس استفاده نموده و task هایی که هزینه بر و سنگین هستند را در پس زمینه راه اندازی کند. یکی از الگوهایی که مکررا برای پیاده سازی سرویس بکار می رود، اجرای یک Thread جدید در سرویس جهت انجام پردازش در پس زمینه و خاتمه دادن سرویس به هنگام اتمام پردازش می باشد. سرویس هایی که در بستر فرایند خود اپلیکیشن اجرا می شوند معمولا تحت عنوان service های محلی یا local شناخته می شوند.

 


سرویس های خود محیط اندروید ( platform ) و سرویس های اختصاصی

محیط اندروید سرویس های آماده و از پیش تعریف شده ای را در نظر گرفته و راه اندازی می کند که تمامی اپلیکیشن های اندرویدی، در صورت برخوردار بودن از مجوزهای لازم قادر به استفاده از آن ها استفاده می باشند. سرویس های سیستم را کلاسی به نام Manager در اختیار اپلیکیشن ها قرار می دهد.کافی است برای دسترسی به آن متد () getSystemService را فراخوانی نمایید.

کلاس Context تعدادی ثابت فراهم می کند که شما با استفاده از آن ها می توانید سرویس های نام برده را فراخوانی کنید.

اپلیکیشن اندروید می تواند علاوه بر سرویس های پیش فرض سیستم اندروید، سرویس های اختصاصی تعریف نموده و از آن ها در کنار سرویس های سیستم استفاده نماید.

توسعه دهنده قادر است با پیاده سازی سرویس های اختصاصی خود اپلیکیشن های پاسخگو و تعاملی (responsive) طراحی نماید. شما می توانید داده های اپلیکیشن را به وسیله های سرویس واکشی نموده و زمانی که اپلیکیشن راه اندازی شد، داده های جدید در اختیار کاربر قرار دهید.

 


راه اندازی و تعریف سرویس های اختصاصی

سرویس های اختصاصی اغلب توسط کامپوننت های دیگر راه اندازی می شوند، به عبارت دیگر سایر اجزا نرم افزاری اپلیکیشن های اندرویدی نظیر activityها، broadcast receiverها و سرویس های دیگر هستند که سرویس های اختصاصی را راه اندازی می کنند.

 


سرویس های پیش زمینه (foregroun)

سرویس پیش زمینه سرویسی است که از نظر اولویت و اهمیت با یک activity فعال و قابل مشاهده در UI یکسان است و به همین جهت حتی اگر سیستم اندروید با کمبود حافظه مواجه باشد باز هم اجازه ی حذف از آن ها حافظه را ندارد. سرویس foreground می بایست در نوار نشان دهنده ی وضعیت کلی سیستم ( status bar ) یک اطلاعیه یا notification در زیر بخش عنوان ” Ongoing” مختص به خود داشته باشد. این بدین معنی است که تا زمان حذف سرویس از foreground یا حافظه notification قابل dismiss و حذف از status bar  نخواهد بود

 

Notification notification = new Notification(R.drawable.icon, getText(R.string.ticker_text),
System.currentTimeMillis());
Intent notificationIntent = new Intent(this, ExampleActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(this, getText(R.string.notification_title),
getText(R.string.notification_message), pendingIntent);
startForeground(ONGOING_NOTIFICATION_ID, notification);

 


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

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

 

ارسال دیدگاه

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

×

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

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

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

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