لماذا يتم إلغاء عمليات بث الإنذار عند قتل التطبيق؟

StackOverflow https://stackoverflow.com/questions/2840750

سؤال

حسنًا ، لديّ اثنين من المسجلين. عند إغلاق التطبيق ، يطلقان النار في الأوقات المناسبة ويقومون بالأشياء المناسبة.

إذا تم إغلاق التطبيق ثم يُقتل (على سبيل المثال مع Appkiller) ، فإن أجهزة الاستقبال لا تتلقى بثها ، ولا يحدث شيء.

من المفترض أن يحدث نفس الشيء إذا تم قتل التطبيق الأصل بسبب انخفاض الذاكرة ، لذا كيف يمكنني التأكد من إطلاق تلك البث/استلامها. تنص واجهة برمجة التطبيقات على أنه حتى إذا قتل التطبيق ، فيجب أن يطلق النار ، فهل يتمتع أي شخص آخر بخبرة في هذا الموقف؟

إذا كان يساعد بياني هو:

<!-- receivers for AlarmManager --> 
<receiver 
android:exported="true" 
android:label="Shift roster updating calendar." 
android:name="com.skooter.shiftroster.backend.service.UpdateCalendar" 
> 
</receiver> 
<receiver 
android:exported="true" 
android:label="Shift roster checking alarm." 
android:name="com.skooter.shiftroster.backend.service.SetWakeup" 
> 
</receiver> 

ولا شيء مستمر في جهاز الإنذار/Broadcastreceivers

هل كانت مفيدة؟

المحلول

من المفترض أن يحدث نفس الشيء إذا تم قتل التطبيق الأصل بسبب انخفاض الذاكرة

أنت تفترض بشكل غير صحيح. يستغل ما يسمى "قتلة المهام" واجهة برمجة تطبيقات معينة ، والتي لا تستخدم في ظروف الذاكرة المنخفضة. "قاتل المهام" API كل شيء ، بما في ذلك الإنذارات المجدولة.

علاوة على ذلك ، نأمل أن يكون تطبيق الوالدين في الذاكرة في المقام الأول. بيت القصيد من الاستخدام AlarmManager هو أن "تطبيق الأصل" الخاص بك لا يدور حول تناول الذاكرة عندما لا يفعل أي شيء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top