آموزش سرویس ها در b4a
سلام.
با یک آموزش کاربردی دیگه از بیسیک فور اندروید در خدمتتون هستیم. آیا تا به حال به این مسئله فکر کرده اید که نرم افزار پیامک گوشیتان چگونه کار میکند؟!
چگونه وقتی که برنامه بسته است، برای گوشی شما پیامک می آید؟!
و یا دیگر پیام رسان ها مثل تلگرام. چگونه است که گوشی شما صفحه اش خاموش است، اما وقتی پیامی براش شما ارسال میشود، صدای گوشی درمی آید، بدون اینکه برنامه را باز کنید؟!
یا اصلا زنگ هشدار گوشی ( آلارم ) چگونه کار میکند؟!
ما در این آموزش به شما خواهیم گفت که چگونه. پس با ما همراه باشید.
آموزش:
تمام عملیات پیام رسانی و یا همین آلارم گوشی، همه و همه در سرویس ها تعریف شده اند.
سرویس چیست؟
اگر بخواهیم به صورت خلاصه برای شما سرویس را تعریف کنیم، سرویس این هست که وقتی داخل برنامه تعریفش کنیم، و وقتی برنامه را برای یک بار اجرا کنیم، سرویس فعال میشود ( البته جایی که صدایش میزنیم ) و وقتی فعال شد، حتی اگر برنامه را ببندیم هم، فعال باقی میماند. این خیلی کاربرد دارد.
به همین خاطر است که وقتی حتی صفحه گوشی شما خاموش است و برنامه پیامک هم فعال نیست، برای شما پیام می آید، چرا، چون سرویس مربوط به پیامک در گوشی فعال است. میتوان طوری سرویس را تعریف کرد که به محض اجرای سیستم عامل، سرویس هم به صورت خودکار اجرا شود.
چگونه سرویس را در برنامه فعال کنیم؟!
- ابتدا از منوی Project گزینه Add New Module و سپس گزینه service Module را انتخاب میکنیم.
- سپس برای سرویسمان نامی در نظر میگیریم و Ok را میزنیم.
- حال اکتیویتی مخصوص سرویس باز میشود.
دستورات مربوطه به این شکل است:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ |
#Region Service Attributes #StartAtBoot: False #End Region Sub Process_Globals End Sub Sub Service_Create End Sub Sub Service_Start (StartingIntent As Intent) Service.StopAutomaticForeground End Sub Sub Service_Destroy End Sub |
- اگر میخواهید سرویس برنامه تان به محض راه اندازی سیستم عامل، اجرا شود، این دستور را در ابتدای اکتیویتی سرویس بزارید:
۱ |
#StartAtBoot: true |
- متغیرها را در این قسمت تعریف کنید:
۱ ۲ ۳ |
Sub Process_Globals End Sub |
دقت داشته باشید اشیایی که داخل برنامه استفاده میکنید، مثل مثلا لیست ویو، در اینجا تعریف نمیشوند و نمیتوانید در این محیط از آن ها استفاده کنید.
- در Sub Service_Create بهتر است متغیرهایی را که تعریف میکنید، initialize کنید.
۱ ۲ ۳ |
Sub Service_Create End Sub |
- در Sub Service_Start دستورات خود را بنویسید.
۱ ۲ ۳ ۴ |
Sub Service_Start (StartingIntent As Intent) Service.StopAutomaticForeground End Sub |
- و اگر میخواهید سرویستان متوقف شود، دستورات را در این قسمت بنویسید:
۱ ۲ ۳ |
Sub Service_Destroy End Sub |
سرویس ها را در همه جای برنامه میشود صدا زد.
- برای صدا زدن سرویس ها، این گونه عمل کنید:
۱ |
StartService(test) |
- و برای خاتمه دادن به سرویس
۱ |
StopService(test) |
دقت کنید که در خط بالا، همان ساب Service_Destroy که در سرویس وجود دارد، اجرا میشود.
در آموزش های بعدی، مثالی را از کار با سرویس ها خواهیم زد.
موفق باشید.
ارسال نظر
شما باید وارد شوید یا عضو شوید تا بتوانید نظر ارسال کنید