9Aug

Apa yang Tepat Terjadi Saat Anda Memasangkan Aplikasi Android Dari Daftar Aplikasi Terbaru?

Saat menggesek aplikasi dari daftar aplikasi yang saat ini berjalan Android, apa sebenarnya yang terjadi pada aplikasi dan data? Baca terus saat kami menyelidiki.

Pertanyaan Hari Ini &Sesi jawaban datang kepada kami dari Android Enthusiast - sebuah subdivisi dari Stack Exchange, pengelompokan berbasis komunitas dari Q & A situs web.

Pertanyaan Penggemar Android Pengganti Android Eldarerathis penasaran dengan fungsi tangkapan aplikasi yang memungkinkan Anda menarik daftar aplikasi yang sedang berjalan melalui tombol beranda dan kemudian menggeseknya ke kanan, mungkin untuk menutupnya:

Daftar aplikasi baru-baru ini diIce Cream Sandwich menambahkan kemampuan untuk menggesek aplikasi dari daftar, sehingga menolaknya secara permanen( dan sejauh yang saya tahu ini adalah fungsi vanili, bukan ROM CM / custom satu).Ikhtisar dan platform menyoroti tidak muncul untuk menutupi pekerjaan di bawah tenda fungsionalitas ini, namun saya penasaran untuk mengetahui apa sebenarnya sistem yang sebenarnya.

Lebih lanjut menambah keingintahuan saya, saya memutuskan untuk melakukan tes cepat: Saya memulai Music on a CM9 install, lalu mundur darinya. Saya kemudian memeriksa daftar aplikasi baru-baru ini dan melihatnya memang ada di sana( dan dalam keadaan tepat, berdasarkan thumbnail).Saya kemudian masuk ke Settings- & gt; Aplikasi dan kekuatan menghentikan aplikasi Musik, namun tetap terdaftar dalam daftar terbaru, membuat saya percaya bahwa ini tidak terhubung dengan proses yang berlama-lama di latar belakang.

Menyadari sekarang bahwa Musik mungkin telah menjadi pilihan yang buruk, saya juga diuji dengan aplikasi USA Today. Hal ini dipamerkan pada dasarnya perilaku yang sama, dan sepertinya itu terpaksa "diluncurkan kembali" setelah pemberhentian kekuatan( yang masuk akal) meskipun thumbnail dalam daftar aplikasi baru-baru ini tidak mencerminkan hal ini( cache, I'm guessing?).

Jadi, apa yang sebenarnya terjadi di tingkat OS saat Anda menggesek aplikasi dari daftar terakhir? Apakah hanya menghapus data aplikasi dari RAM dan mengumpulkannya, menghancurkan keadaan tersimpannya?

Apa sebenarnya yang terjadi saat Anda menggesek aplikasi dari daftar?

Jawaban Kontributor

Kontributor Android Austin Mills menawarkan beberapa wawasan:

Menggesek aplikasi dari daftar aplikasi baru-baru ini adalah vanilla, dan ya, tidak terdokumentasi dengan baik. Ini telah menjadi topik dari sejumlah diskusi yang layak di berbagai forum Android. .. konsensus tampaknya paling baik dijelaskan di sini dalam beberapa komentar: bahwa tingkah lakunya mirip tapi tidak sama dengan menutup aplikasi - secara umum( untuk aplikasi yangjangan mendefinisikan penanganan tombol back eksplisit) sama saja dengan memukul cukup waktu dari aplikasi yang Anda keluar darinya.

Tautan ini memiliki beberapa rincian lebih lanjut tentang spesifikasi, namun secara keseluruhan Anda dapat menganggapnya sebagai berhenti dari aplikasi.

Khusus untuk aplikasi Musik, saya yakin layanan ini dimulai, jadi sementara tugas itu sendiri( aplikasi Musik / UI) dapat ditutup, layanan ini terus berjalan di latar belakang sehingga musik Anda tidak tiba-tiba berhenti hanya karenaTugas dibersihkan karena alasan manajemen memori. Itu mungkin telah mempengaruhi apa yang Anda lihat.

Kemudian, mengikuti lingkaran tanya-jawab, Eldarerathis kembali dengan beberapa penelitiannya sendiri untuk melengkapi jawabannya:

Saya tampaknya telah menemukan istilah pencarian ajaib yang menyebabkan beberapa penjelasan dari karyawan Google. Secara khusus, saya menemukan beberapa tempat berbeda dimana Dianne Hackborn menjelaskan apa yang terjadi saat Anda menggesek sesuatu dari daftar terbaru. Yang pertama adalah komentar di salah satu pos Google+-nya:

[W] hat khusus terjadi saat Anda menggesek tugas baru-baru ini:( 1) membunuh latar belakang atau proses aplikasi yang kosong( lihat di sini untuk apa artinya ini)dan( 2) menggunakan API baru untuk memberi tahu layanan aplikasi apa pun tentang tugas yang dihapus sehingga dapat melakukan apa pun yang menurutinya sesuai.

Dia juga mencatat dalam sebuah komentar blog:

Sebenarnya, menghapus entri dalam tugas terakhir akan membunuh proses latar belakang yang ada untuk proses tersebut. Ini tidak akan secara langsung menyebabkan layanan dihentikan, namun ada API bagi mereka untuk mengetahui bahwa tugas telah dihapus untuk memutuskan apakah mereka menginginkan ini berarti mereka harus berhenti. Ini agar penghapusan mengatakan tugas baru aplikasi e-mail tidak akan menyebabkannya berhenti memeriksa e-mail.

Jika Anda benar-benar ingin menghentikan aplikasi sepenuhnya, Anda dapat terus menekan tugas terakhir untuk masuk ke info aplikasi, dan tekan berhenti di sana. Pemberhentian paksa adalah pembunuhan total dari semua proses yang terbunuh, semua layanan dihentikan, semua layanan dihentikan, semua pemberitahuan dihapus, semua alarm dihapus, dll. Aplikasi tidak diizinkan diluncurkan lagi sampai diminta secara eksplisit.

Jadi, sepertinya rangkumannya adalah menggesek aplikasi dari daftar pertama-tama akan membunuh semua proses latar belakang untuk aplikasi, lalu gunakan onTaskRemoved untuk memberi tahu aplikasi bahwa tugas latar belakang telah dihapus. Pada saat itu sepertinya ada aplikasi yang memutuskan apa yang akan terjadi, jadi saya kira secara teknis bukanlah aturan keras dan keras tentang apa yang terjadi pada aplikasi di luar titik itu.

Punya sesuatu untuk ditambahkan ke penjelasan? Terdengar dalam komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange tech-savvy lainnya? Simak thread diskusi selengkapnya disini.