لماذا يتم إلغاء عمليات بث الإنذار عند قتل التطبيق؟
-
27-09-2019 - |
سؤال
حسنًا ، لديّ اثنين من المسجلين. عند إغلاق التطبيق ، يطلقان النار في الأوقات المناسبة ويقومون بالأشياء المناسبة.
إذا تم إغلاق التطبيق ثم يُقتل (على سبيل المثال مع 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
هو أن "تطبيق الأصل" الخاص بك لا يدور حول تناول الذاكرة عندما لا يفعل أي شيء.