Şu anda çalışan Android uygulamalar listenizden bir uygulamayı kaydırdığınızda, uygulamaya ve verilere tam olarak ne olur? Biz araştırdıkça okumaya devam edin.
Bugünün Soru-Cevap oturumu, soru-cevap web sitelerinin topluluk odaklı bir grubu olan Stack Exchange'in bir alt bölümü olan Android Enthusiast'ın izniyle bize geliyor.
Soru
Android Meraklısı okuyucusu Eldarerathis, çalışan uygulamalar listenizi ana ekran düğmesi aracılığıyla açmanıza ve ardından bunları muhtemelen kapatmak için sağa kaydırmanıza olanak tanıyan uygulama kaydırma işlevini merak ediyor:
Ice Cream Sandwich'teki son uygulamalar listesi, uygulamaları listeden kaydırarak, onları kalıcı olarak reddetme yeteneğini ekledi (ve bildiğim kadarıyla bu bir CM / özel ROM değil, vanilya işlevi). Dokümantasyon ve platform vurguları, bu işlevselliğin başlık altındaki işleyişini kapsamıyor gibi görünüyor, ancak sistemin gerçekte ne yaptığını bilmek istiyorum.
Merakıma daha da ek olarak, hızlı bir test yapmaya karar verdim: Müziği bir CM9 kurulumunda başlattım, sonra geri aldım. Daha sonra son uygulamalar listesini kontrol ettim ve gerçekten orada olduğunu gördüm (ve küçük resme göre uygun durumda). Sonra girdim
Ayarlar-> Uygulamalarve Müzik uygulamasını zorla durdurdu, ancak yine de son listede listeleniyordu ve arka planda kalan işlemlerle bağlantılı olmadığına inanmaya başladım.Müziğin kötü bir seçim olabileceğini şimdi anladığımdan, USA Today uygulamasıyla da test ettim. Bu, temelde aynı davranışı sergiliyordu ve son uygulamalar listesindeki küçük resim bunu yansıtmasa da (önbelleğe alınmış, tahmin ediyorum?) Zorla durdurmadan sonra "yeniden başlatmak" zorunda kalmış gibi görünüyordu (bu mantıklıydı).
Peki, bir uygulamayı son listeden kaydırdığınızda işletim sistemi düzeyinde gerçekte ne oluyor? Uygulamanın verilerini RAM'den temizleyip çöp toplayarak kayıtlı durumunu yok ediyor mu?
Uygulamayı listeden kaydırdığınızda tam olarak neler oluyor?
Cevaplar
Android Enthusiast katılımcısı Austin Mills, bazı bilgiler sunuyor:
Uygulamaları son uygulamalar listesinden kaydırmak vanilyadır ve evet, iyi belgelenmemiştir. Bu, çeşitli Android forumlarında makul miktarda tartışmanın konusu oldu ... fikir birliği en iyi şekilde açıklanmış gibi görünüyor bazı yorumlarda burada : davranışın bir uygulamayı kapatmaya benzer, ancak tam olarak aynı olmadığı - genel olarak (açık geri düğmesi işlemeyi tanımlamayan uygulamalar için), çıktığınız bir uygulamanın içinden yeterince kez geri dönmekle aynı şeydir o.
Bağlantı, ayrıntılar hakkında daha fazla ayrıntı içerir, ancak genel olarak bunu uygulamadan çıkmış olarak düşünebilirsiniz.
Müzik uygulamasına özel olarak, bir hizmet başlattığına inanıyorum, bu nedenle görevin kendisi (Müzik uygulaması / UI) kapatılabilirken, hizmet arka planda çalışmaya devam eder, böylece müziğiniz yalnızca görev nedeniyle aniden durmaz. bellek yönetimi nedenlerinden dolayı temizlendi. Bu gördüklerinizi etkilemiş olabilir.
Sonra, yaşamın soru-cevap döngüsüne katılan Eldarerathis, cevabı tamamlamak için kendi başına bazı araştırmalarla geri döndü:
Görünüşe göre Google çalışanlarının bazı açıklamalarına yol açan sihirli arama terimlerini buldum. Özellikle, Dianne Hackborn'un son listeden bir şeyi kaydırdığınızda neler olduğunu açıkladığı birkaç farklı yer buldum. İlk olarak Google+ yayınlarından birine yorum :
[W]Son zamanlarda yapılan bir görevi hızlıca kaydırdığınızda özellikle olan şey şudur: (1) uygulamanın herhangi bir arka planını veya boş işlemlerini öldürür (bkz. buraya bunun anlamı için) ve (2) yeni ATEŞ Uygulamanın herhangi bir hizmetine kaldırılan görev hakkında bilgi vermek, böylece uygun olduğunu düşündüğü her şeyi yapabilir.
O da blog yorumundaki notlar :
Aslında, son görevlerdeki bir girişi kaldırmak, işlem için var olan tüm arka plan işlemlerini öldürecektir. Hizmetlerin doğrudan durmasına neden olmaz, ancak görevin kaldırıldığını öğrenmeleri ve bunun durmaları gerektiği anlamına gelip gelmemesine karar vermeleri için bir API vardır. Bunun nedeni, bir e-posta uygulamasının son görevinin kaldırılmasının, uygulamanın e-posta kontrolünü durdurmasına neden olmamasıdır.
Bir uygulamayı gerçekten tamamen durdurmak istiyorsanız, uygulama bilgilerine gitmek için son görevlere uzun süre basabilir ve orada zorla durdurma düğmesine basabilirsiniz. Zorla durdurma, uygulamanın tamamen kapatılmasıdır - tüm işlemler durdurulur, tüm hizmetler durdurulur, tüm bildirimler kaldırılır, tüm alarmlar kaldırılır, vb. Uygulamanın, açıkça talep edilene kadar yeniden başlatılmasına izin verilmez.
Bu nedenle, özet, bir uygulamayı listeden kaydırmanın önce uygulama için tüm arka plan işlemlerini öldüreceği ve ardından
onTaskRemovedArka plan görevinin kaldırıldığını uygulamaya bildirmek için. Bu noktada, ne olacağına karar vermek uygulamaya kalmış gibi görünüyor, bu yüzden teknik olarak orada olduğunu tahmin ediyorum değil Bu noktanın ötesinde uygulamaya ne olacağı konusunda kesin ve hızlı bir kural.