آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

فرق خروجی های متد start سرویس؟

وحید  11 سال پیش  11 سال پیش
0 0

سلام دوستان
این خروجی های متد start سرویس چه معنایی دارند و چیکار می کنن؟

  Service.START_CONTINUATION_MASK
Service.START_STICKY
Service.START_NOT_STICKY
Service.START_REDELIVER_INTENT
Service.START_FLAG_REDELIVERY
Service.START_FLAG_RETRY

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

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
hamcalas  11 سال پیش
+3 0

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

     public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "Service onStartCommand", Toast.LENGTH_LONG).show();
return START_STICKY;

}

درون متد    onStartCommand  می توانیم وضعیت سرویس را پس از توقف (چه توسط اندروید و چه توسط کاربر ) تعیین کنیم که باخط زیر مشخص می کنیم

  return START_STICKY

START_STICKY :  اگر سرویس به هر دلیل قطع شد وقتی امکانش بود مثلا حافظه کم نبود و... دوباره شروع کن این مورد وابسته به ورودی intent نیست

START_NOT_STICKY :  اگر سرویس به هر دلیل قطع شد بی خیالش شو و دیگه شروع نکن مگر اینکه کاربر برنامه را باز کند و ...

START_REDELIVER_INTENT :  مثل اولین مورد است (START_STICKY)  فرقش این است که چیزهایی که در intent هست به onStartCommand  تحویل داده می شود .

+1 0
آفرین (11 سال پیش)
0 0
ممنون. حالا یه مشکلی دارم این که وقتی از برنامه کاملا خارج می شم سرویس یه مکثی می کنه و ریست می شه و من نمی خوام ریست بشه. به همین دلیل تنها گزینه ای که درست کار کرد START_CONTINUATION_MASK بود ولی با مشکلات دیگه مواجه شدم. همش اررور : برنامه فلان not respond می ده و می گهی متوقف بشه یا صبر می کنید، میده. چیکار کنم سرویس با خروج از برنامه ریست نشه؟ (11 سال پیش)
0 0
فکر می کنم به هر حال سرویس پس زمینه متوقف یا ریستارت خواهد شد ، مثلا وقتی گوشی خاموش روشن بشه ، اگر قرار هست بطور دایم کار کند و محاسباتی انجام بدهید باتری را خواهد خورد و کسی برنامه را نصب نمی کند ، اگر می خواهید مثل یک موزیک پلیر داشته باشید از foreground service استفاده کنید سرویس های فورگراند ریستارت نمی شوند مگر اینکه کاربر بخواهد ، یک نمونه آموزش اینجا هست لینک (11 سال پیش)
0 0
نه دائمی که نمی خوام روشن باشه ولی می خوام تا همون مثلا 10 ساعتی که قراره سرویس کار کنه ریست نشه. با خاموش شدن هم اشکال نداره سرویس stop بشه. این فورنگراند سرویس ها چه فرقی باسرویس های معمولی دارن؟ (11 سال پیش)
0 0
و در این فورگراندسرویس من هیچ تفاوتی با سرویس معمولی ندیدم. (11 سال پیش)
0 0
از سرویس معمولی که استفاده کنید هم سرویس ریس نمیشه بجز اینکه گوشی ریست شه یا بصورت دستی kill بشه . foreground در موارد خاصی مثل موزیک پلیر استفاده میشه و اغلب از همین سرویس های معمولی استفاده میشه و بهتر هست. تفاوتهای دیگه ش هم یه جایی خوندم که foreground ها مثل سرویس معمولی نیست که وقتی مموری کم اومد متوقف بشه . (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .