Wakelock hakkında bir sorum var. Aşağıda gösterilen durumlarda, wakelock'un kalmasını önlemek ve güç kapanıncaya kadar pilin boşa harcanmasını önlemek için wakelock'u (belirtmeniz gerekiyorsa PARTIAL_WAKE_LOCK
) serbest bırakınız.Android OS işletim sistemi, onu tutan uygulama veya hizmet öldürüldüğünde bir uyanıklık mı veriyor?
Durum 1-a: Uygulama (bu durumda makul olduğunu düşünüyorum lütfen) kendi konuları birinde (zaman aşımı seçeneği w/o) Uyandırma kilidi satın aldı ve kritik görev iken Uyandırma kilidi serbest bırakmak için tasarlanmıştır
tamamladı. App taskmanager veya kötü şöhretli görev kesiciler tarafından öldürülür ve app iplik serbest bırakma wakelock izin şansı yoktur. Bu uyanığa ne olacak?
Durum 1-b:
(. Case 1-a cevabı ise, bu davayı göz ardı edin, "Evet, merak etmeyin") case 1-a, fakat uygulamada aynı verdi aşımı seçeneği uyanmak için, 3 saniye söyle. Bu zaman aşımı seçeneği geçerli mi?
Durum 2-a:
orada (Broadcast alıcı üzerinden) AlarmManager başlatmış olduğu bir hizmettir ve hizmet (zaman aşımı seçeneği o/w) bir Uyandırma kilidi satın aldı hayal edin. Bu servis, uyanık edinilen zamanı en aza indirmek için tasarlanmıştır. Ancak maalesef Android işletim sistemi bu hizmeti bellek sıkışıklığı nedeniyle öldürdü. (Wakelock elde edildiğinde işletim sisteminin işletim sistemini öldürüp öldürmeyeceğini bilmiyorum, ama işletim sisteminin umurunda değil sanırım. Ama umarım işletim sistemi daha sonra uyandırır.) Bu uyanıklığa ne olur?
Durum 2-b:
(. Vaka 2-a cevabı ise, bu davayı göz ardı edin, "Evet, merak etmeyin") vaka 2-a ama hizmet olarak aynı verdi aşımı seçeneği uyanmak için, 3 saniye söyle. Bu zaman aşımı seçeneği geçerli mi?
Bu 2 yıllık soruya verdiğiniz ayrıntılı ve açık bir cevap için teşekkür ederiz. Cevabınız kesinlikle benim dahil olmak üzere birçok geliştiriciye yardımcı olur. – Tomcat
Zevkle, bu eski sorunun niçin ilginç bir şekilde sıralanmış soru listesinin ilk yerine atladığını bilmiyorum. @Tomcat – StarPinkER