En Son Uygulamalar Listesinden Bir Android Uygulamasını Kaydırdığınızda Tam Olarak Ne Olur?
Bir uygulamayı şu anda çalışan uygulamalar listenizden kaydırdığınızda, uygulama ve verilere tam olarak ne olur? Araştırırken okumaya devam et.
Bugünün Soru ve Cevap oturumu bize, topluluk tarafından yönlendirilen bir soru-cevap web sitesi grubu olan Stack Exchange'in bir alt bölümü olan Android Meraklısı'nın izniyle geliyor..
Soru
Android Tutkunları okuyucu Eldarerathis, çalışan uygulamalar listenizi ana sayfa düğmesiyle yukarı çekmenizi ve ardından bunları kapatmak için sağa doğru kaydırmanızı sağlayan uygulama kaydırma işlevi hakkında merak ediyor:
Ice Cream Sandwich'deki en son uygulamalar listesi, uygulamaları listeden dışarı kaydırma yeteneğini ekledi, bu sayede uygulamaları kalıcı olarak reddetti (ve bunun bir vanilya işlevi olduğunu bildiğim kadarıyla bir CM / custom ROM olanı değil). Dokümantasyon ve platformun özeti, bu işlevselliğin başlık altındaki çalışmalarını kapsamaz gibi görünmüyor, ancak sistemin gerçekte ne yaptığını bilmek merak ediyorum.
Merakımı daha da ekleyerek hızlı bir test yapmaya karar verdim: Bir CM9 kurulumunda Music'i başlattım, sonra geri çektim. Daha sonra son uygulamalar listesine baktım ve gerçekten orada olduğunu gördüm (ve küçük resme göre uygun durumda). Sonra girdim
Ayarlar-> Uygulamalar
ve zorla Müzik uygulamasını durdurdu, ancak son listede hala yer aldı, bu da arka planda kalan süreçlerle bağlantılı olmadığına inanmamı sağladı..Şimdi Müzik'in kötü bir seçim olabileceğini fark ederek, USA Today uygulaması ile de test ettim. Bu temelde aynı davranışı sergiledi ve son uygulama listesindeki küçük resim bunu yansıtmasa da (önbellek, tahmin ediyorum?) Zorla durduktan sonra “yeniden başlatılması” gerektiğine benziyordu..
Peki, bir uygulamayı son listeden çıkardığınızda işletim sistemi düzeyinde ne oluyor? Uygulamanın verilerini RAM’den temizler ve çöpleri toplar ve kaydedilmiş durumunu yok eder?
Uygulamayı listeden çıkardığınızda tam olarak neler oluyor??
Cevaplar
Android Meraklısı katılımcı Austin Mills, bazı bilgiler sunmaktadır:
Son uygulamalar listesinden uygulamaları kaydırmak vanilyadır ve evet, iyi belgelenmemiş. Bu, çeşitli Android forumlarında iyi bir tartışma konusu oldu… fikir birliği burada en iyi şekilde açıklanmış gibi görünüyor: davranışın bir uygulamayı kapatmakla tamamen aynı olduğu gibi değil - genel olarak açık geri düğmenin kullanımını tanımlamayın) bu, uygulamadan çıkacağınız bir uygulamadan yeterince geri vurmakla aynı şeydir.
Bağlantı özellikleri hakkında daha fazla ayrıntıya sahiptir, ancak genel olarak uygulamayı bırakmayı düşünebilirsiniz..
Müzik uygulamasına özgü bir hizmet başlattığına inanıyorum, bu nedenle görevin kendisi (Müzik uygulaması / kullanıcı arayüzü) kapatılabilirken, servis arka planda çalışmaya devam eder, böylece müzik yalnızca görev nedeniyle aniden durmaz bellek yönetimi nedenleriyle temizlendi. Gördüklerini etkilemiş olabilir..
Ardından, yaşamın soru-cevap döngüsüne katılan Eldarerathis, cevabı ortaya çıkarmak için kendi araştırmasıyla geri döndü:
Google çalışanlarından bazı açıklamalara yol açan sihirli arama terimlerini bulmuş gibiyim. Özellikle, Dianne Hackborn'un listeden bir şey kaydırdığınızda ne olacağını açıkladığı birkaç farklı yer buldum. İlki, Google+ yayınlarından birine yapılan bir yorumdur:
[W] şapka özellikle yeni bir görevi kaydırdığınızda gerçekleşir: (1) uygulamanın arka planını veya boş işlemlerini öldürür (bunun ne anlama geldiğini görmek için buraya bakın) ve (2) herhangi bir hizmeti anlatmak için yeni API'yi kullanır. kaldırılmakta olan görevle ilgili uygulama, uygun olduğunu düşündüğü her şeyi yapabilir.
Ayrıca bir blog yorumunda şunları da not eder:
Aslında, son görevlerdeki bir girişi kaldırmak, işlem için var olan arka plan işlemlerini öldürür. Doğrudan hizmetlerin durmasına neden olmaz, ancak bunun durdurmaları gerekip gerekmediğine karar vermek için görevin kaldırıldığını bulmalarını sağlayacak bir API vardır. Bu, bir e-posta uygulamasının son görevinin e-posta denetlemeyi durdurmasına neden olmayacağını söylemesidir..
Bir uygulamayı gerçekten tamamen durdurmak istiyorsanız, uygulama bilgilerine gitmek için son görevlere uzun süre basabilir ve orada durma kuvvetini durdurabilirsiniz. Zorla durdurma, uygulamanın tamamen kesilmesidir - tüm işlemler öldürülür, tüm hizmetler durdurulur, tüm bildirimler kaldırılır, tüm alarmlar kaldırılır, vb. Uygulama açıkça talep edilinceye kadar tekrar başlatılamaz..
Özetle, listeden bir uygulamayı kaydırmanız ilk önce uygulamanın tüm arka plan işlemlerini öldürür, sonra kullanır
onTaskRemoved
Uygulamaya, arka plan görevinin kaldırıldığını bildirmek için. Bu noktada ne olacağına karar vermek uygulamanın elinde gibi görünüyor, bu yüzden teknik olarak orada sanırım değil Bu noktanın ötesindeki uygulamaya ne olacağına dair zor ve hızlı bir kural.
Açıklamaya eklemek için bir şey var mı? Yorumlarda ses kesiliyor. Diğer teknoloji meraklısı Stack Exchange kullanıcılarından daha fazla cevap okumak ister misiniz? Burada tüm tartışma konusuna göz atın.