دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱
  • آبان

جلسه ۰۷ : سرویس های اندروید

  • دسته‌بندی‌ها :
جلسه ۰۷ : سرویس های اندروید
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش برنامه نویسی اندروید را دنبال می کنند. سرویس یک جزء از برنامه است که در پس زمینه اجرا می شود تا عملیات دراز مدت و پیچیده بدون نیاز به ارتباط با کاربر انجام شود و حتی اگر برنامه متوقف شود، باز هم کار می کند. یک سرویس می تواند اساسا یکی از دو حالت started و bound را داشته باشد. سرویس ها نیز همانند Activity در اندروید در یک سیکل چرخشی از ایجاد تا توقف کامل اجرا می شوند. برای آشنایی با سرویس ها در اندروید و چگونگی استفاده از سرویس در اندروید با ادامه ی مباحث این بخش با ما همراه باشید.

      سرویس های اندروید

      در ادامه ی این آموزش شما را با چگونگی کار با سرویس ها در اندروید و متدهای مربوطه آشنا می کنیم.

      همانطور که اشاره شد به طور کلی سرویس ها در اندروید شامل یکی از دو ضعیت زیر هستند:

      ردیفوضعیت و توضیحات مربوطه
      ۱Started

      یک سرویس زمانی شروع می شود که یک جزء برنامه، مانند یک فعالیت، با فراخوانی () startService شروع می شود

      ۲Bound

      یک سرویس زمانی که یک جزء برنامه به آن متصل می شود، با فراخوانی () bindService محدود می شود.

      این وضعیت یک رابط client-server را فراهم می کند.

      سرویس یک سیکل از فراخوانی متدهای callback است. که شما می توانید برای نظارت بر تغییرات سرویس آن را پیاده سازی کنید.

      در شکل زیر در نمودار سمت چپ سیکل چرخشی که با متد () startService آغاز می شود را نشان می دهد.

      نمودار سمت راست نیز سیکل چرخشی که با متد () bindService  اجرا می شود را نشان می دهد:

      کار با سرویس ها در اندروید

      کار با سرویس ها در اندروید

      برای ایجاد سرویس، شما باید یک کلاس Java را ایجاد کنید که کلاس پایه Service یا یکی از زیر کلاس های موجود را گسترش می دهد.

      کلاس پایه Service متد های مختلفی را برای فراخوانی تعریف می کند و مهمترین آنها در ادامه آمده است.

      البته شما نیازی به پیاده سازی و استفاده از تمام متدهای زیر را ندارید اما بد نیست که یک درک کلی از همه ی این موارد داشته باشید:

      ردیف

      متدهای Callback و توضیحات مربوطه

      ۱onStartCommand()

      سیستم با استفاده از این متد، وقتی یک جزء دیگر، مانند یک فعالیت، سرویس متد () startService را فراخوانی می کند، این متد را فراخوانی می کند.

      با استفاده از این متد می توانید سرویس ها را با متد ()stopSelf یا ()stopService متوقف کنید.

       

      ۲onBind()

      زمانیکه که جزء دیگر می خواهد با سرویس ()bindService ارتباط برقرار کند، سیستم از این متد استفاده می کند.

      شما باید سعی کنید که همیشه از این متد استفاده کنید.

      ۳onUnbind()

      زمانیکه اتصال تمام مشتری های یک رابط خاص توسط یک سرویس قطع می شود این متد فراخوانی می شود.

       

      ۴onRebind()

      سیستم هنگامی که مشتریان جدید به سرویس متصل می شوند، این متد را فراخوانی می کند.

       

      ۵onCreate()

      سیستم هنگامی که سرویس برای اولین بار با استفاده از ()OnStartCommand یا ()onBind ایجاد می شود این متد را می گیرد.

       

      ۶onDestroy()

      سیستم هنگامی که این سرویس دیگر استفاده نمی شود و از بین می رود، این متد را فرا می خواند.

      سرویس از این متد معمولا برای پاکسازی منابع و… استفاده می کند.

      کد برنامه ی زیر پیاده سازی هر یک از متدهای فوق را نشان می دهد:

      مثال : 

      مثال

      در این مثال ما به شما چگونگی ایجاد سرویس در اندروید را نشان خواهیم داد.

      مراحل زیر را برای تغییر دادن برنامه ی اندرویدی که در بخش قبل ایجاد کردیم دنبال کنید:

      مراحلتوضیحات
      ۱مراحل ایجاد برنامه در اندروید استدیو را طبق بخش های قبلی دنبال کرده و نام پکیج را com.example.pvlearn.myapplication قرار بدهید.
      ۲فایل main activity را با افزودن متدهای () methods startService  و () stopService تغییر بدهید.
      ۳یک فایل جاوا جدید MyService.java را در زیر بسته برنامه com.example.My ایجاد کنید.

      این فایل اجرایی متدهای مربوط به سرویس Android را اجرا خواهد کرد.

      ۴سرویس خود را در فایل AndroidManifest.xml با استفاده از برچسب <service … /> تعریف کنید. یک برنامه می تواند یک یا چند سرویس را بدون محدودیت داشته باشد.
      ۵در محتویات res / layout / activity_main.xml دو دکمه در طراحی خطی اضافه کنید.
      ۶فایل res / values / strings.xml. را بدون تغییر رها کنید.
      ۷در نهایت برنامه را Run کرده تا نتیجه را در شبیه ساز اندروید مشاهده کنید.

      تغییرات فایل MainActivity

      در کد زیر محتوای فایل اصلی MainActivity.java اصلاح شده است.ما متد های ()startService و ()stopService  را برای شروع و توقف سرویس اضافه کرده ایم.

      مثال : 

      تغییرات فایل MyService

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

      در حال حاضر ما قصد داریم تنها دو متد ()onStartCommand  و ()onDestroy  را در فایل مذکور اضافه کنیم.

      مثال : 

      تغییرات فایل FileManifest

      محتوای FileManifest.xml نیز بصورت زیر اصلاح می شود که ما  برچسب <service … /> را اضافه کردیم تا سرویس ها را در برگیرد:

      مثال : 

      تغییرات فایل activity_main

      در کد زیر که محتوای فایل res/layout/activity_main.xml می باشد دو دکمه را اضافه کرده ایم:

      مثال : 

      اجرای برنامه

      برای اجرای برنامه ی اندرویدی خود یکی از فایل های activity در برنامه ی خود کلیک کنید.

      سپس روی نماد  (Run) از نوار ابزار برای شروع اجرای برنامه کلیک کنید.

      اگر همه چیز بخوبی پیش برود شبیه ساز اندروید پنجره ی زیر را نمایش خواهد داد:

      کار با سرویس ها در اندروید

      کار با سرویس ها در اندروید

      حالا برای شروع سرویس خود، بر روی دکمه Start Service کلیک کنید، اینکار سرویس را با فراخوانی متد متد ()onStartCommand شروع می کند.

      سپس سرویس پیام شروع شده در پایین شبیه ساز به صورت زیر ظاهر می شود:

      کار با سرویس ها در اندروید

      کار با سرویس ها در اندروید – حالت دوم

      همچنین برای توقف سرویس، می توانید روی دکمه Stop Service کلیک کنید.

      کلام آخر

      سرویس ها فرآیندها ی مختلفی هستند که به دور از چشم کاربر و در پس زمینه ی برنامه های اندروید اجرا می شود، و قابلیت های زیادی را ارائه می دهند، از این رو مباحث این بخش را به چگونگی کار با سرویس ها در اندروید و ساخت یک سرویس در اندروید اختصاص دادیم.

      QR:  جلسه ۰۷ : سرویس های اندروید
      به اشتراک بگذارید