ورود

View Full Version : بهترین راه اجرای کلاس با کم ترین احتمال بسته شدن در پس زمینه اندروید



behzad74
دوشنبه 04 اردیبهشت 1396, 22:21 عصر
سلام من یک کلاس دارم ک نیاز دارم همیشه اجرا باشه . درحال حاضر از سرویس ها استفاده میکنم ولی گاهی اوقات ظاهرا بسته میشه
ظاهرا دو راه برای اجرای کلاس در پس زمینه هست یکی Service هست و دیگری Foreground
تفاوت این دو چیه؟کدوم حافظه و cpu کمتری استفاده میکنه؟و کدوم احتمال بسته شدنش کمتره؟توی سایت های خارجی و stackoverflow سرچ کردم اما چیز زیادی دستگیرم نشد در این رابطه.

behzad74
سه شنبه 05 اردیبهشت 1396, 23:30 عصر
سلام دوستان مشکلم حل شد
اگر میخواین یک سرویس موقعی ک برنامه تون بسته میشه همواره اجرا بمونه میتونین از Foreground استفاده کنید
ولی یک سرویس Foreground هم معایبی داره اونم اینه ک اگر رم کافی توی سیستم عامل وجود نداشته باشه بدون هیچ اجازه ای سرویس شما رو میبنده، و دیگری اینه ک با اجرای هر Foreground باید حتما یک Notification موقعی ک سرویس شما اجراست نمایش داده بشه ( مثل برنامه های تقویم ) البته اگر از Alarammanager هم استفاده کنید میشه سرویستون همواره اجرا باشه ولی چندان اصولی بنظر نمیرسه و پیشنهاد نمیشه .
ولی در حال حاضر اجرای سرویس بصورت Foreground بهترین راه با کمترین احتمال بسته شدن در اندروید هست

روش استفاده :
برای اجرا بصورت Foreground باید در قسمت onCreate() سرویس موردنظرتون یک سرویس Notification ایجاد کنید و در انتها یک کد بهش اختصاص بدید و تابع startForeground رو اجرا کنید:
startForeground(int, Notification)
که Int برابر یک عدد هست ( میتونید رندوم بدید مهم نیست )
و Notification هم همون نوتیفیکیشنی هست ک برای نمایش ساختین.