Beranda » bagaimana » Apa Yang Tepat Terjadi Ketika Anda Menggesek Aplikasi Android Dari Daftar Aplikasi Terbaru?

    Apa Yang Tepat Terjadi Ketika Anda Menggesek Aplikasi Android Dari Daftar Aplikasi Terbaru?

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

    Sesi Tanya Jawab hari ini datang kepada kami berkat Android Enthusiast-subdivisi Stack Exchange, pengelompokan situs web Q&A berbasis komunitas.

    Pertanyaan

    Pembaca Penggemar Android, Eldarerathis, ingin tahu tentang fungsi gesekan aplikasi yang memungkinkan Anda untuk menarik daftar aplikasi yang sedang berjalan melalui tombol beranda dan kemudian menggesernya 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 tampaknya tidak mencakup pekerjaan di bawah kap fungsi ini, tapi saya ingin tahu apa yang sebenarnya dilakukan sistem.

    Lebih lanjut menambah rasa ingin tahu saya, saya memutuskan untuk melakukan tes cepat: Saya memulai Musik pada instalasi CM9, kemudian mundur. Saya kemudian memeriksa daftar aplikasi terbaru dan melihatnya memang ada di sana (dan dalam kondisi yang tepat, berdasarkan thumbnail). Saya kemudian masuk Pengaturan-> Aplikasi dan paksa menghentikan aplikasi Musik, tetapi masih terdaftar dalam daftar baru-baru ini, membuat saya percaya itu tidak terhubung ke proses berlama-lama di latar belakang.

    Menyadari sekarang bahwa Musik mungkin merupakan pilihan yang buruk, saya juga menguji dengan aplikasi USA Today. Ini pada dasarnya menunjukkan perilaku yang sama, dan sepertinya terpaksa "meluncurkan kembali" setelah penghentian paksa (yang masuk akal) meskipun thumbnail dalam daftar aplikasi terbaru tidak mencerminkan ini (dalam cache, saya menduga?).

    Jadi, apa yang sebenarnya terjadi pada level OS ketika Anda menggesek aplikasi dari daftar terakhir? Apakah itu hanya menghapus data aplikasi dari RAM dan sampah mengumpulkannya, menghancurkan keadaan yang disimpan?

    Apa sebenarnya yang terjadi ketika Anda menggesek aplikasi dari daftar?

    Jawaban

    Kontributor Android Enthusiast Austin Mills menawarkan beberapa wawasan:

    Menggeser aplikasi dari daftar aplikasi terbaru adalah vanilla, dan ya, tidak didokumentasikan dengan baik. Ini telah menjadi topik diskusi yang layak di berbagai forum Android ... konsensus tampaknya paling baik dijelaskan di sini dalam beberapa komentar: bahwa perilakunya mirip dengan tetapi tidak persis sama dengan menutup aplikasi - secara umum (untuk aplikasi yang jangan mendefinisikan penanganan tombol kembali secara eksplisit) itu adalah hal yang sama dengan menekan kembali cukup kali dari dalam aplikasi yang Anda keluar dari itu.

    Tautan ini memiliki beberapa detail lebih lanjut tentang spesifikasinya, tetapi secara keseluruhan Anda dapat menganggapnya sebagai berhenti dari aplikasi.

    Khusus untuk aplikasi Musik, saya percaya ini memulai layanan, jadi sementara tugas itu sendiri (aplikasi Musik / UI) 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, dengan berpartisipasi dalam lingkaran kehidupan tanya-jawab, Eldarerathis kembali dengan risetnya sendiri untuk melengkapi jawabannya:

    Tampaknya saya telah menemukan istilah pencarian ajaib yang mengarah pada beberapa penjelasan dari karyawan Google. Secara khusus, saya menemukan beberapa tempat berbeda di mana Dianne Hackborn menjelaskan apa yang terjadi ketika Anda menggesek sesuatu dari daftar terakhir. Yang pertama adalah komentar pada salah satu pos Google+nya:

    [Secara khusus] terjadi ketika Anda menghapus tugas baru-baru ini: (1) membunuh semua latar belakang atau proses aplikasi yang kosong (lihat di sini apa artinya ini), dan (2) menggunakan API baru untuk memberi tahu layanan apa pun dari aplikasi tentang tugas yang dihapus sehingga dapat melakukan apa pun yang menurutnya sesuai.

    Dia juga mencatat dalam komentar blog:

    Sebenarnya, menghapus entri dalam tugas terbaru akan mematikan proses latar belakang yang ada untuk proses tersebut. Itu tidak akan secara langsung menyebabkan layanan berhenti, namun ada API bagi mereka untuk mengetahui tugas itu dihapus untuk memutuskan apakah mereka ingin ini berarti mereka harus berhenti. Ini dimaksudkan agar menghapus mengatakan tugas terbaru dari aplikasi email tidak akan menyebabkannya berhenti memeriksa email.

    Jika Anda benar-benar ingin menghentikan aplikasi sepenuhnya, Anda dapat menekan lama pada tugas-tugas terbaru untuk pergi ke info aplikasi, dan tekan paksa berhenti di sana. Stop paksa adalah penghentian total aplikasi - semua proses dimatikan, semua layanan dihentikan, semua pemberitahuan dihapus, semua alarm dihapus, dll. Aplikasi tidak diizinkan untuk diluncurkan lagi hingga diminta secara eksplisit.

    Jadi, sepertinya ringkasannya adalah menggesek aplikasi dari daftar terlebih dahulu akan membunuh semua proses latar belakang aplikasi, kemudian menggunakan onTaskRemoved untuk memberi tahu aplikasi bahwa tugas latar belakang telah dihapus. Pada titik itu sepertinya tergantung pada aplikasi untuk memutuskan apa yang terjadi, jadi saya kira ada secara teknis bukan aturan keras dan cepat tentang apa yang terjadi pada aplikasi di luar titik itu.


    Punya sesuatu untuk ditambahkan ke penjelasan? Berbunyi dalam komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang mengerti teknologi lainnya? Lihat utas diskusi lengkap di sini.