هم اکنون عضو شوید

ورود

فراموشی گذرواژه

گذروازه خود را فراموش کردید ؟

ورود

عضو شوید

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

دوره آموزش برنامه نویسی اندروید
آموزش سرویس (Service) در برنامه نویسی اندروید

آموزش سرویس (Service) در برنامه نویسی اندروید

سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش سرویس (Service) در برنامه نویسی اندروید می پردازیم در این آموزش یاد می گیرید که اصلا سرویس (Service) چیست ؟ و به چه کاری می آید و در کجا ها استفاده می شود. در این آموزش متوجه می شوید که سرویس چه نقش مهمی را برای ما بازی می کند در این آموزش یاد می گیرد که چگونه با استفاده از سرویس می توانید task های طولانی را بدون اینکه UI را درگیرد کنید انجام دهید در ادامه با ما همراه باشید.

 

Service ( سرویس ) چیست ؟

سرویس یکی از major component  یا کامپوننت اصلی در اندروید است .

چه کاری انجام میدهد ؟

همانطور که در قل گفتیم برای انجام Task یا Operation های طولانی از Task استفاده می شود و بدونی این که مزاحم کاربر شود در Background کار خود را انجام میدهد.

در کجا استفاده می شود ؟

هر جایی که Task های طولانی وجود داشته باشد یا Task شروع و پایان مشخصی نداشته باشد از Task استفاده می شود مثل Notification یا سرویس های پیامک و کلی چیز دیگر.

اساسا دو حالت کلی در هر سرویسی وجود دارد.

  • Started  یا  startService ()
  • Bound یا  bindService()
  • UnBound یا onUnbind()
  • Rebound یا onRebind()
  • onCreate()
  • onDestroy()

Started

یک سرویس باید شروع شود تا به انجام کار بپردازد این شروع هم در اکتیویتی یا در فرگمنت اتفاق می افتد.

Bound

زمانی که بخواهید با یک وب سرویس ارتباط برقرار کنید نیاز است تا از Bound استفاده کنید تا سرویس بتواند ارتباط برقرار کند.

UnBound

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

Rebound

برای اتصال دوباره بین سرور و اپ باید از Rebound استفاده شود.

onCreate

زمانی که یک سرویس برای اولین بار اجرا می شود.

onDestroy

زمانی که یک سرویس نابود یا به پایان می رسد.

در ادامه یک سرویس ساده را مثال میزنیم

ابتدا یک فایل به نام TService.java ایجاد کنید و کد های زیر را در آن قرار دهید. (این کد اصلی نیست فقط می خوام با ساختار یک سرویس آشنا شوید.)

و کد مربوط به MainActivity.java همانند زیر می شود.

حالا زمان آن است سرویس اصلی را ایجاد کنیم یک فایل به نام MyService.java ایجاد کرده و کد های زیر را در آن قرار دهید.

و سپس در بخش AndroidManifest.xml سرویس خود را ریجیستر کنید.

 

این آموزش هم به پایان رسید.

 

موفق و موید باشید.

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

با زبان های برنامه نویسی C# , Java , Php به صورت تخصصی کار کردم و بیشتر وقتم رو در برنامه نویسی می گذرونم علاقه زیادی به ساخت اپلیکیشن اندروید دارم.

نظرها ( ۱۰ )

  1. ۱۹, مرداد , ۱۳۹۶ در ۱۰:۳۸ ق.ظ

    سلام
    برای اینکه مثلا تنظیم بکنیم که ۷ روز یکبار از دیتابیس بکاپ بگیری خودکار انجام شود با استفاده از سرویس انجام می شود؟
    اگه اینکار با استفاده از سرویس انجام می شود لطفا آموزشی در این رابطه بزارید
    با تشکر از آموزش خوبتان

    • محمد حسین جعفری پور
      ۱۹, مرداد , ۱۳۹۶ در ۱۲:۰۷ ب.ظ

      خیر با استفاده از alram باید این بخش را ایجاد کنید سرویس در اینجا کاربردی ندارد.

  2. همایون
    ۲۵, مهر , ۱۳۹۶ در ۱۰:۰۸ ق.ظ

    سلام . میخوام بدونم اگه بخوام یه سرویس ایجاد کنم که بدون اینکه توسط اپلیکیشن دیگه ای فراخوانی بشه ، مثلا هر ۵ دقیقه یک فولدر رو چک کنه و فایلهای موجود در اون رو آپلود کنه ، باید چکار کنم؟

  3. o0arash0o
    ۹, اردیبهشت , ۱۳۹۷ در ۴:۲۶ ق.ظ

    سلام اقای جعفری پور پروژه من با استفاده از ترد.اسلیپ هر ۱ ساعت یک بار یک کار رو انجام میده ولی تا وقتی برنامه بازه و وقتی کاربر برنامه رو میبنده دیگه عمل نمیکنه برای حل این مشکل باید چیکار کنم با استفاده از سرویس حل میشه؟

    • محمد حسین جعفری پور
      ۹, اردیبهشت , ۱۳۹۷ در ۱۱:۲۵ ق.ظ

      سلام و درود بله شما باید از سرویس استفاده کنید شما می توانید از SystemClock.sleep هم استفاده کنید.

  4. o0arash0o
    ۱۰, اردیبهشت , ۱۳۹۷ در ۵:۳۳ ق.ظ

    آلارم منیجر هم نیاز به سرویس داره ؟؟

  5. reza
    ۲۱, تیر , ۱۳۹۸ در ۴:۴۴ ب.ظ

    باسلام…
    من وقتی میخوام سرویس رو تو منیفست ریجیستر کنم خطای المنت غیرمنتظره میده:error: unexpected element found in …چکارش کنم؟
    باتشکر از آموزش های خوبتون.

  6. محمد رضا
    ۸, مهر , ۱۳۹۸ در ۷:۲۹ ب.ظ

    با سلام خدمت شما و خسته نباشید
    شرمنده من یه سرویس نوشتم که پایگاه داده انلاین رو چک میکنه که زیر اندروید ۹ داره به درستی کار میکنه ولی برای اندروید ۹ وقتی برنامه بسته میشه سرویس بصورت خودکار onDestory میشه لطفا کمک کنید که چیکار کنم