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

4 سال پیش
سرویس در برنامه نویسی اندروید
امتیاز دهید post

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

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، با سرویس در برنامه نویسی اندروید (Android Services) آشنا خواهیم شد.

سرویس در برنامه نویسی اندروید بخشی است که برای انجام عملیات طولانی مدت بدون نیاز به تعامل با کاربر در پس زمینه اجرا می شود و حتی اگر برنامه از بسته شود. یک سرویس اساساً می تواند دو حالت داشته باشد –

 

حالت و توضیحات
1 Started

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

2 Bound

وقتی یک مولفه برنامه با فراخوانی ()bindService  به آن متصل می شود ، سرویس محدود می شود. یک سرویس محدود یک رابط سرویس گیرنده-سرور را ارائه می دهد که به اجزای سازنده امکان می دهد با سرویس ارتباط برقرار کنند، درخواست ارسال کنند، نتیجه بگیرند و حتی این کار را در فرایندهای ارتباط بین پردازشی (IPC) انجام دهند.

یک سرویس دارای روش های برگشت چرخه حیات است که می توانید برای نظارت بر تغییرات وضعیت سرویس پیاده سازی کنید و می توانید کار را در مرحله مناسب انجام دهید. نمودار زیر سمت چپ ، چرخه حیات را هنگام ایجاد سرویس با ()startService نشان می دهد  و نمودار سمت راست، چرخه حیات را هنگام ایجاد سرویس با ()bindService نشان می دهد:

 

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

 

کال بک و توضیحات
1

()onStartCommand

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

2 ()onBind

این سیستم زمانی این متد را فراخوانی می کند که مولفه دیگری با فراخوانی ()bindService  به سرویس بپیوندد. اگر این روش را پیاده سازی کنید، باید با بازگرداندن یک شی IB IBinder ، رابطی ارائه دهید که کلاینت ها از آن برای ارتباط با سرویس استفاده می کنند. شما همیشه باید این روش را پیاده سازی کنید، اما اگر نمی خواهید اجازه اتصال دهید، باید صفر برگردید.

3 ()onUnbind

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

4 ()onRebind

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

5 ()onCreate

این سیستم وقتی اولین سرویس با استفاده از ()onStartCommand یا ()onBind ایجاد می شود، این روش را فراخوانی می کند.

6 ()onDestroy

سیستم این روش را زمانی فراخوانی می کند که سرویس دیگر استفاده نشود و در حال تخریب باشد. سرویس شما باید این کار را برای پاک کردن منابعی مانند رشته ها، شنوندگان ثبت شده، گیرنده ها و غیره انجام دهد.

 

 

مثال

این مثال شما را طی مراحل ساده هدایت می کند تا نحوه ایجاد سرویس اندروید را نشان دهید. مراحل زیر را دنبال کنید تا برنامه اندروید را که در جلسه Hello World  ایجاد کرده ایم اصلاح کنید –

 

مرحله توضیحات
1 شما از Android StudioIDE برای ایجاد یک برنامه اندروید و نامگذاری آن به عنوان  My Application تحت یک بسته com.example.tutorialspoint7.myapplication استفاده خواهید کرد.
2 پرونده فعالیت اصلی MainActivity.java را تغییر دهید تا روش ()startService  و ()stopService را اضافه کنید.
3 یک فایل جاوا جدید ایجاد کنید MyService.java در بسته com.example.My Application. این فایل از روش های مربوط به سرویس اندروید استفاده می کند.
4 با استفاده از برچسب <service … /> سرویس خود را در پرونده AndroidManifest.xml تعریف کنید. یک برنامه کاربردی می تواند یک یا چند سرویس بدون هیچ محدودیتی داشته باشد
5 محتوای پیش فرض فایل res / layout / activity_main.xml را تغییر دهید تا شامل دو دکمه در طرح بندی خطی باشد.
6 بدون نیاز به تغییر ثابت در پرونده res / values / strings.xml. Android studio از مقادیر رشته مراقبت می کند
7 برای راه اندازی شبیه ساز اندروید و تأیید نتیجه تغییرات انجام شده در برنامه، برنامه را اجرا کنید.

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

 

در زیر محتوای MyService.java است. این پرونده بر اساس نیازها می تواند یک یا چند روش مرتبط با سرویس را اجرا کند. در حال حاضر ما فقط دو روش را روی ()StartCommand  و ()onDestroy  پیاده سازی می کنیم –

در زیر محتوای اصلاح شده پرونده AndroidManifest.xml اعمال می شود. در اینجا ما برچسب <service … /> را اضافه کرده ایم تا شامل سرویس ما شود –

در زیر محتوای پرونده res / layout / activity_main.xml وجود دارد که شامل دو دکمه است –

بیایید سعی کنیم Hello World اصلاح شده خود را اجرا کنیم! من تصور می کنم شما AVD خود را هنگام راه اندازی محیط ایجاد کرده اید. برای اجرای برنامه از Android studio، یکی از پرونده های فعالیت پروژه خود را باز کنید و از نوار ابزار روی Android StudioRun Icon کلیک کنید. Android Studio برنامه را روی AVD شما نصب کرده و شروع به کار می کند و اگر با تنظیمات و برنامه هایتان همه چیز خوب باشد، زیر پنجره شبیه ساز نمایش داده می شود.

 

 

اکنون برای شروع سرویس خود، بر روی دکمه Start Service کلیک کنید، این سرویس شروع به کار می کند و طبق برنامه نویسی ما به روش ()onStartCommand، یک پیام Service Started در پایین شبیه ساز به شرح زیر ظاهر می شود –

 

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

منبع.

لیست جلسات قبل آموزش برنامه نویسی اندروید

  1. نگاهی کلی به برنامه نویسی اندروید
  2. تنظیمات محیط  در برنامه نویسی اندروید
  3. معماری برنامه نویسی اندروید
  4. اجزای برنامه در برنامه نویسی اندروید
  5. Hello World در برنامه نویسی اندروید
  6. سازماندهی و دسترسی به منابع در برنامه نویسی اندروید
  7. فعالیت در برنامه نویسی اندروید

 

امتیاز دهید post
0
برچسب ها :
نویسنده مطلب saber

دیدگاه شما

بدون دیدگاه