رفتن به مطلب
  • 0

ایجاد یک سرویس که همیشه درحال اجرا باشد


sa.sa.ir.40

سوال

درود بر دوستان عزیز

من یک تقویم دارم که میخام براش ریمایندر بنویسم

برای اینکار نیاز به سرویسی دارم که حتی در حالت خواب گوشی هم در حال کار باشه

 اگه نیاز به نمایش دائمی نوتیفیکیشن باشه هم اشکالی نداره 

تجربیات خودم:

سرویس روی اندروید تا نسخه 5 بدون مشکل اجرا میشه

روی اندروید 6 اجراش کند میشه  (در حالت خواب) مثلا بجای اجرا هر 1 دقیقه یکبار هر چند دقیقه یکبار اجرا میشه همینطور با تایمر

اندروید 8 به بالا ناگهان سرویس به کلی متوقف میشه (در هواوی وای 7 2019 چک کردم) 

در حال اجرا بودن سرویس با نوشتن لاگ در دیتابیس (به ازای هربار اجرا یا هر تیک تایمر) چک شد *  

 

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

جسارتا اگر روالی رو تست کردید و مطمئنید عنوان کنید چون تا دلتون بخاد پیشنهادهای تئوری گرفتم که کار نمیکرد

لینک ارسال
به اشتراک گذاری در سایت های دیگر

7 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

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

راهی که من استفاده کردم این بود که سرویس رو توی فورگراند اجرا کنی که البته دیگه نوتیفیکیشن میاد بالای گوشی دائم هستش و بجای استفاده از استارت سرویس درون سرویس، از یه تایمر به صورت دستی استفاده کنی 

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

این کار رو انجام دادم اگه به صورتی که گفتم لاگ فعالیت سرویس رو چک کنید میبینید که درست اجرا نمیشه و وقتی گوشی به حالت خواب عمیق میره سرویس اوایل هر چند دقیقه و بعد تقریبا هر یک ساعت یکبار اجرا میشه

درواقع سیستم عامل اجرای اونرو محدود میکنه

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در گوشی هواوی با EMUI بالاتر از 8 دوچیز این مشکل رو بوجود میاره

1. گزینه ای که شما فرمودید (App launch) که باید اپلیکیشن برای اجرا در زمینه معرفی بشه

2. فعال کردن گزینه Power Saving Mode که در این حالت حتی یه سری سرویسهای داخلی رو هم قلع و قمع میکنه

در مورد بالا هردو اینها رعایت شده ضمن اینکه حتی تو اندروید 6 هم چک کردم درست اجرا نمیشد حالا هواوی بماند

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ضمن تشکر از Forl عزیز

سوآل من بیشتر ساخت سرویس هست

وگرنه خودم فعلا مشکل رو با اینسرت کردن رویداد در تقویم و راهنمایی کاربر برای ثبت ریمایندر حل کردم (البته اینسرت کردن مستقیم یادداشت بهمراه ریمایندر هم ممکنه ولی توی همه گوشی ها درست عمل نمیکنه)

سوآل من کلی هست میخام بدونم با فرض اینکه کاربر میدونه سرویس مشخصی قراره یکسره در حال اجرا باشه آیا میشه از توقف یا کند شدنش جلوگیری کرد؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

این سوآل کلی تر از اون هست که بخاد وقت زیادی برای کد نوشتن یا تست از اساتید بگیره و بیشتر مفهومی هست

یعنی واقها کسی نیست پاسخگو باشه؟

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

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

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...