درس ها
دسته ها
دستهها
- php (1)
- امنیت (6)
- اندروید (3)
- اینترنت (2)
- برنامه نویسی (14)
- بوت استرپ (1)
- پایتون (1)
- تازه ها (22)
- ترفند ها (30)
- تکنولوژی های جدید (1)
- جاوا (2)
- جاوا اسکریپت (2)
- سئو (1)
- سخت افزار (4)
- صنعت بازی (1)
- صنعت رباتیک (1)
- طراحی وب (14)
- عکاسی (1)
- فضاهای ذخیره سازی (1)
- فلاتر (1)
- گوشی های هوشمند (1)
- متفرقه (1)
- موبایل (3)
- نرم افزار (17)
- هوش مصنوعی (4)
- وب (1)
- وردپرس (7)
- ویدئو های آموزشی (24)
معرفی سرویس ها در اندروید
ضمن عرض سلام و ادب خدمت شما کاربران وبسایت موستانگ ، در آخرین درس از این آموزش، می خواهیم به معرفی سرویس ها در اندروید بپردازیم.
سرویس چیست؟
سرویس، کامپوننتی است که در پس زمینه اجرا می شود و با کاربر تعامل مستقیم ندارد. چون سرویس هیچ رابط کاربری ندارد، طول عمرش به طول عمر اکتیویتی بستگی ندارد.
برای کارهای تکراری و زمان بر از سرویس ها استفاده می کنیم. (مثل: دانلودهای اینترنتی، چک کردن آپدیت ها، پردازش داده، آپدیت کردن تامین کننده های محتوا یا content providers و غیره)
سرویس ها نسبت به اکتیویتی های inactive و invisible، از درجه اهمیت بالاتری برای بقا در حافظه برخوردارند. یعنی احتمال اینکه اندروید آن ها را پایان دهد، کمتر است. حتی اگر هم توسط سیستم کشته شوند، می توان طوری آن ها را تنظیم کرد که وقتی منابع مجدداً فراهم شد، دوباره اجرا شوند.
این امکان نیز وجود دارد که به سرویس ها، درجه اولویتی اندازه اکتیویتی روی صفحه یا forground activity داد. در این حالت، باید برایش یک اعلان یا notification (که روی نوار اعلان قابل دید و فعال باشد) مهیا کرد. این روش بیشتر برای سرویس هایی که یک ویدئو یا موزیک را اجرا می کنند، استفاده می شود.
سرویس ها و پردازش های پس زمینه ای
در حالت پیشفرض، یک سرویس در همان پردازه ی اصلی (main thread) اپلیکیشن اجرا می شود. بنابرین، همان طور که پیشتر گفتیم، باید برای انجام کارهایی که منابع سنگینی استفاده می کنند، از پردازه های غیر همزمان (asynchronous) استفاده کنیم. یک روش معمول برای استفاده از این کار، ساخت و اجرا یک thread جدید در سرویس و انجام پردازش های سنگین در پس زمینه است. در نهایت وقتی کار thread تمام شد، به آن سرویس خاتمه می دهیم.
سرویس های اندروید
پلتفرم اندروید، خودش یک سری سرویس های از پیش تعیین شده را فراهم کرده و هر اپلیکیشن اندرویدی می تواند (بعد از درخواست اجازه دسترسی) از آن ها استفاده کند. این سرویس های سیستمی، معمولاً توسط یک کلاس خاص مدیریت می شوند و دسترسی به آن ها، توسط تابع ()getSystemService
امکان پذیر است. کلاس Context، متغیرهای متنوعی را برای دستیابی به این سرویس ها تعریف کرده است.
یک اپلیکیشن اندرویدی، می تواند علاوه بر استفاده از سرویس های سیستمی، از سرویس هایی که خودش تعریف کرده نیز استفاده کند. تعریف سرویس توسط شما، این امکان را می دهد که اپلیکیشنی ریسپانسیو داشته باشید. مثلاً می توانید داده های مورد نیازتان را از طریق یک سرویس دانلود کرده و در نتیجه هر وقت کاربر برنامه را باز می کند، داده های بروز نمایش داده می شوند.
انواع سرویس ها
در ادامه با موستانگ همراه باشید تا با انواع سرویس ها در اندروید آشنا شوید.
Forground
یک سرویس Forground ، کارهایی را انجام می دهد که کاربر هم متوجه آن ها می شود. (مثلاً یک برنامه صوتی که از سرویسی برای اجرای یک موزیک استفاده می کند). سرویس های Forground، باید یک اعلان (Notification) نمایش دهند. این نوع سرویس ها، حتی در مواقعی که کاربر با آن ها تعامل ندارد نیز به اجرا ادامه می دهند.
Background
یک سرویس Background ، کارهایی را انجام می دهد که کاربر مستقیماً متوجه آن ها نمی شود. (مثلاً وقتی یک اپلیکیشن پایگاه داده اش را فشرده می کند).
Bound
یک سرویس bound نامیده می شود، وقتی یک کامپوننت به آن bind یا متصل شود. (با فراخوانی تابع ()
indService
). یک سرویس Bound، رابطی را فراهم می کند که به کامپوننت ها اجازه تعامل، ارسال درخواست و دریافت پاسخ را می دهد و تا زمانی که کامپوننت های دیگر به آن متصل باشند، عمر می کند. چندین کامپوننت می توانند همزمان به یک سرویس متصل شوند، اما زمانی که تمامی آن ها از سرویس جدا شوند، سرویس خاتمه می یابد.
در نهایت
[*] در این درس، با معرفی سرویس ها و اعلان ها ، به این دوره از آموزش اندروید خاتمه دادیم. برای مشاهده نمونه کدی از پیاده سازی سرویس در اندروید، به این لینک مراجعه کنید. همچنین برای آشنایی با توابع مورد نیاز، به سایت توسعه دهندگان اندروید سری بزنید.
[*] سوالات و نظرات خود را می توانید در پایین این نوشته و در قسمت دیدگاه ها ثبت کنید. همچنین، در قسمت مانژ می توانید نمونه کدهایی از این درس را مشاهده کرده و سوالات اندروید خود را نیز قرار دهید. تیم متخصصان برنامه نویسی موستانگ ، پاسخگوی شما خواهند بود.