9Aug
Bir uygulamayı şu anda çalışan Android uygulamalar listenizden hızlıca kaydırdığınızda, uygulama ve veriye tam olarak ne olur? Araştırırken okuyun.
Bugünkü Soru &Cevap oturumu, Google'ın Q & A web sitelerinin topluluk temelli bir gruplandırması olan Stack Exchange'in bir alt bölümü olan Android Meraklısı tarafından sağlanmıştır.
Soru
Android Tutkunları okuyucu Eldarerathis, ev düğmesi ile çalışan uygulamalar listenizi yukarı çekmenizi ve muhtemelen bunları kapatmak için onları sağa hızlıca kaydırmanıza olanak tanıyan, hızlıca kaydırma işlevini merak ediyor:
En yeni uygulamalar listesiIce Cream Sandwich, uygulamaların listeden dışarı atılmasını ve böylece kalıcı olarak işten çıkarılma yeteneğini ekledi( ve bildiğim kadarıyla bunun bir vanilya işlevi olduğunu, CM / özel ROM olmadığının farkındayım).Dokümantasyon ve platform vurgulamaları, bu işlevselliğin başında gelen çalışmalarını kapsamıyor gibi görünse de, sistemin aslında ne yaptığını merak ediyorum.
Merakıma ilaveten, hızlı bir test yapmaya karar verdim: Bir CM9 kurulumunda Müzik'i başlattım, sonra da müzikten çıktım. Daha sonra son uygulamalar listesini kontrol ettim ve gerçekten orada olduğunu gördüm( ve minyatür resimle uygun durumda).Ardından, Ayarlar-> Uygulamalar'a gidip Müzik uygulamasını durdurdum, ancak arka planda kalan süreçlere bağlı olmadığına inandığım halde son listede listelendi.
Müzik'in kötü bir seçim olabileceğini fark ettiğim için USA Today uygulamasıyla da test ettim. Bu temel olarak aynı davranışı sergiledi ve son uygulamaların listesindeki küçük resimlerin bunu yansıtmadığı halde( "mantıklı") zorla durdurulduktan sonra "yeniden başlat" zorunda kaldıklarını sanki( önbelleklenmiş, tahmin ediyorum?).
Yani, son listeden bir uygulamayı hızlıca kaydırdığınızda OS seviyesinde gerçekte ne olur? Uygulamanın RAM'deki verilerini temizlemek ve çöp toplamak, kaydedilen durumunu yok etmek mi?
Uygulamayı listeden hızlıca kaydırdığınızda tam olarak ne oluyor?
Cevaplar
Android Tutkunları katkıda bulunan Austin Mills, bazı fikirler sunar:
Son uygulamalar listesindeki uygulamaları kaydırmak vanilya ve evet, iyi belgelendirilmemiş.Bu, çeşitli Android forumlarında iyi bir tartışma konusu oldu. .. görüş birliği burada bazı açıklamalarda en iyi tanımlanıyor gibi görünüyor: davranışın bir uygulamanın kapanışına benzer - fakat genelde aynı - uygulamalardaaçık geri düğme işlemeyi tanımlamayın), dışarı çıktığınız bir uygulamadan yeterince zaman geri döndüğünüzde aynı şeydir.
Bağlantı ayrıntılarla ilgili daha fazla ayrıntıya sahiptir ancak genel olarak bunu uygulamadan çıkmak gibi düşünebilirsiniz.
Müzik uygulamasına özgü olarak, bir hizmet başlattığına inanıyorum, bu nedenle görevin kendisi( Müzik uygulaması / kullanıcı Arabirimi) kapatıldığında, hizmet arka planda çalışmaya devam eder; böylece müziğiniz aniden durmaz; çünkügörev, bellek yönetimi nedenleriyle ortadan kaldırıldı.Bu gördüğünüzü etkilemiş olabilir.
Daha sonra, yaşamın soru-cevap grubuna katılan Eldarerathis, cevabı tamamlamak için kendi araştırması yaparak geri döndü:
Google çalışanlarının bazı açıklamalarına neden olan büyülü arama terimlerini buldum görünmektedir.Özellikle, Dianne Hackborn'un son listeden bir şeyler çektikten sonra ne olduğunu açıkladığı birkaç farklı yer buldum. Birincisi, onun Google+ postalarından birisiyle ilgili bir yorum:
[W] şapkası özellikle son bir görevi hızlıca attığınızda olur:( 1) uygulamanın herhangi bir arka planını veya boş işlemlerini öldürür( bunun anlamı için buraya bakın),ve( 2) uygulamanın, kaldırılan görevle ilgili herhangi bir hizmeti bildirmek için yeni API'yi kullanır, böylece uygun olduğunu düşündüğü şeyleri yapabilir.
Ayrıca bir blog yorumunda notlar:
Aslında, son görevlerdeki bir girdiyi kaldırmak işlem için varolan arka plan süreçlerini öldürecektir. Doğrudan hizmetlerin durdurulmasına neden olmaz, ancak bunun durdurulması gerektiği anlamına gelip istemediğini kararlaştırmak için görevin kaldırıldığını öğrenmeleri için bir API vardır. Bu, bir e-posta uygulamasının son görevini kaldırmanın, e-postayı kontrol etmeyi durdurmasına neden olmaması için geçerlidir.
Bir uygulamayı gerçekten tamamen durdurmak isterseniz, uygulama bilgilerine gitmek için son görevlere uzunca basabilir ve oradaki zorla durma düğmesine basabilirsiniz. Force stop, uygulamanın tamamen öldürülmesidir - tüm işlemler kesilir, tüm hizmetler durdurulur, tüm bildirimler kaldırılır, tüm alarmlar kaldırılır vb. Uygulama, açıkça isteninceye kadar yeniden başlatılamaz.
Yani, bir uygulamayı listeden çıkarmanın, önce uygulamanın tüm arka plan süreçlerini öldüreceğini, ardından uygulamanın arka plan görevinin kaldırıldığını bildirmek içinTaskRemoved'i kullanacağı özet gibi görünüyor. Bu noktada, ne olacağına karar vermenin uygulamaya bağlı olduğu anlaşılıyor; bu yüzden sanırım orada teknik olarak , bu noktanın ötesinde uygulamaya ne olacağı konusunda sert ve hızlı bir kural değildir.
Açıklamaya eklemek için bir şey var mı?Açıklamalarda ses çıkıyor. Diğer teknik uzman Stack Exchange kullanıcılarından daha fazla cevap okumak ister misiniz? Buradaki tam tartışma dizinine göz atın.