Saat Anda menggesek aplikasi dari daftar Android yang saat ini sedang berjalan, apa yang sebenarnya terjadi pada aplikasi dan data? Baca terus selagi kami menyelidikinya.
Sesi Tanya & Jawab hari ini hadir untuk memberi hormat kepada Android Enthusiast-subdivisi Stack Exchange, pengelompokan situs web Q & A berbasis komunitas.
Pembaca Android Enercusi Eldarerathis ingin tahu tentang fungsi aplikasi-gesek yang memungkinkan Anda untuk menarik daftar aplikasi yang berjalan melalui tombol home dan kemudian geser ke kanan, mungkin untuk menutupnya:
Daftar aplikasi terbaru di Ice Cream Sandwich menambahkan kemampuan untuk menghapus aplikasi dari daftar, sehingga mengabaikannya secara permanen (dan sejauh yang saya tahu ini adalah fungsi vanilla, bukan CM / custom ROM). Dokumentasi dan sorotan platform tidak muncul untuk menutupi fungsi-fungsi di bawah kap fungsionalitas ini, tetapi saya penasaran untuk mengetahui apa yang sebenarnya dilakukan sistem.
Lebih lanjut menambahkan ke rasa ingin tahu saya, saya memutuskan untuk melakukan tes cepat: Saya memulai Musik pada instalasi CM9, kemudian mundur dari itu. Saya kemudian memeriksa daftar aplikasi baru-baru ini dan melihat itu memang ada di sana (dan dalam keadaan yang tepat, berdasarkan thumbnail). Saya kemudian pergi ke
Pengaturan-> Aplikasi
dan memaksa menghentikan aplikasi Music, tapi itu masih terdaftar di daftar terbaru, membuat saya percaya itu tidak terhubung ke proses berlama-lama di latar belakang.Menyadari sekarang bahwa Musik mungkin pilihan yang buruk, saya juga menguji dengan aplikasi USA Today. Hal ini pada dasarnya menunjukkan perilaku yang sama, dan sepertinya dipaksa untuk "diluncurkan kembali" setelah pemberhentian paksa (yang masuk akal) meskipun gambar mini di daftar aplikasi baru-baru ini tidak mencerminkan ini (cache, saya kira?).
Jadi, apa yang sebenarnya terjadi di tingkat OS saat Anda menggesek aplikasi dari daftar terbaru? Apakah itu hanya menghapus data aplikasi dari RAM dan sampah mengumpulkannya, menghancurkan statusnya yang disimpan?
Apa sebenarnya yang terjadi saat Anda menggesek aplikasi dari daftar?
Kontributor Android Enthusiast Austin Mills menawarkan beberapa wawasan:
Menggeser aplikasi dari daftar aplikasi terbaru adalah vanilla, dan ya, tidak terdokumentasi dengan baik. Ini telah menjadi topik diskusi dalam jumlah yang layak di berbagai forum Android ... konsensus tampaknya paling baik dijelaskan di sini dalam beberapa komentar: bahwa perilaku mirip tetapi tidak sama dengan menutup aplikasi - secara umum (untuk aplikasi yang tidak mendefinisikan penanganan tombol back eksplisit) itu sama dengan memukul balik cukup dari dalam aplikasi yang Anda keluar darinya.
Tautan memiliki beberapa detail lebih lanjut tentang hal-hal spesifik, tetapi secara keseluruhan Anda dapat menganggapnya sebagai berhenti dari aplikasi.
Khusus untuk aplikasi Music, saya percaya ini memulai layanan, jadi sementara tugas itu sendiri (aplikasi / UI Musik) mungkin ditutup, layanan terus berjalan di latar belakang sehingga musik Anda tidak tiba-tiba berhenti hanya karena tugas dibersihkan karena alasan manajemen memori. Itu mungkin memengaruhi apa yang Anda lihat.
Kemudian, berpartisipasi dalam lingkaran pertanyaan dan jawaban, Eldarerathis kembali dengan beberapa penelitian sendiri untuk melengkapi jawabannya:
Saya tampaknya telah menemukan istilah pencarian ajaib yang menyebabkan beberapa penjelasan dari karyawan Google. Secara khusus, saya menemukan beberapa tempat yang berbeda di mana Dianne Hackborn menjelaskan apa yang terjadi ketika Anda menggesek sesuatu dari daftar baru-baru ini. Yang pertama adalah komentar di salah satu pos Google+-nya:
[W] topi khusus terjadi ketika Anda menggesekkan tugas terbaru adalah: (1) membunuh latar belakang atau proses kosong dari aplikasi (lihat di sini untuk apa artinya ini), dan (2) menggunakan API baru untuk memberi tahu layanan apa pun aplikasi tentang tugas dihapus sehingga dapat melakukan apa pun yang dianggap sesuai.
Dia juga mencatat dalam komentar blog:
Sebenarnya, menghapus entri dalam tugas-tugas terbaru akan mematikan proses latar belakang apa pun yang ada untuk proses tersebut. Ini tidak akan secara langsung menyebabkan layanan berhenti, namun ada API bagi mereka untuk mengetahui tugas telah dihapus untuk memutuskan apakah mereka ingin ini berarti mereka harus berhenti. Hal ini agar menghapus mengatakan tugas terakhir dari aplikasi e-mail tidak akan menyebabkannya berhenti memeriksa e-mail.
Jika Anda benar-benar ingin benar-benar menghentikan aplikasi, Anda dapat menekan lama pada tugas terakhir untuk pergi ke info aplikasi, dan tekan kekuatan berhenti di situ. Force stop adalah kill aplikasi yang lengkap - semua proses terbunuh, semua layanan berhenti, semua notifikasi dihapus, semua alarm dihapus, dll. Aplikasi tidak diizinkan untuk diluncurkan lagi hingga diminta secara eksplisit.
Jadi, sepertinya ringkasannya adalah bahwa menggesekkan suatu aplikasi dari daftar akan terlebih dahulu membunuh semua proses latar belakang untuk aplikasi, kemudian menggunakan
onTaskRemoved
untuk memberi tahu aplikasi bahwa tugas latar belakang telah dihapus. Pada titik itu sepertinya itu tergantung pada aplikasi untuk memutuskan apa yang terjadi, jadi saya kira ada secara teknistidak aturan keras dan cepat tentang apa yang terjadi pada aplikasi di luar titik itu.
Memiliki sesuatu untuk ditambahkan ke penjelasan? Bicaralah di komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang paham teknologi lainnya? Lihat diskusi lengkap di sini.