Satu hal yang membingungkan saya. Sepertinya saya menggunakan beberapa program di Android dan menekan tombol "home", saya melihat layar beranda dan dapat menjalankan kembali program itu dan melihat program itu dalam keadaan yang sama seperti sebelumnya - jadi sepertinya program ini tidak sepenuhnya dihidupkan ulang, hanya ditangguhkan dan kemudian dilanjutkan.
Namun itu tampaknya tidak terjadi secara konsisten dengan game Air Control. Kadang-kadang ketika saya bermain Air Control dan tekan "home" dan kemudian jalankan kembali Air Control - itu dijeda (seolah-olah saya menekan tombol "pause") dan saya bisa melanjutkan permainan. Terkadang hal yang sama menyebabkan Air Control menjatuhkan permainan dan memulai lagi.
Jadi sepertinya saya tidak mengerti sesuatu.
Apa masalahnya di sini? Apa yang terjadi pada suatu program ketika "rumah" ditekan? Apakah itu terus berjalan atau apa fungsinya?
sumber
Jawaban:
Menekan akan Homemengalihkan Anda dari aplikasi ke layar beranda, sambil membiarkan aplikasi Anda berjalan di latar belakang. Ini agak seperti berpindah antar windows pada PC Windows.
Kecuali bahwa ketika ponsel Anda kehabisan sumber daya seperti memori, itu akan mulai menutup aplikasi yang berjalan di latar belakang, sehingga ponsel Anda memiliki sumber daya yang cukup untuk apa yang Anda coba lakukan sekarang. Game seringkali berada di antara aplikasi pertama yang akan "dibunuh" ponsel untuk menghemat sumber daya karena mereka sering menggunakan lebih banyak memori dan CPU daripada aplikasi lain. Inilah sebabnya terkadang game Anda masih berjalan dijeda, dan terkadang Android telah menutupnya untuk Anda.
The Backtombol adalah cara untuk aplikasi dekat sehingga mereka benar-benar ditutup.
Lihat juga. Apa cara yang tepat untuk menutup aplikasi di Android?
sumber
Dokumen Pengembangan Android Tugas dan Back Stack sebenarnya mencakup ini dengan cukup baik. Kutipan yang relevan:
Ringkasan : Tugas dipindahkan ke latar belakang saat Anda menekan
Home
dan duduk di memori, tidak benar-benar melakukan apa pun dan mempertahankan statusnya. Ini berarti bahwa (secara umum) Anda dapat beralih kembali ke tugas dan itu akan mengambil di mana ia tinggalkan. Namun, sistem Android dapat - dan akan - membunuh tugas latar belakang jika perlu mengambil kembali memori. Kapan dan jika ini terjadi sepenuhnya tergantung pada sistem, dan mungkin itulah sebabnya Anda melihat perilaku tidak konsisten saat melanjutkan.Jika tugas dihancurkan oleh sistem, tugas itu harus dibuat ulang saat Anda meluncurkannya lagi. Jadi, kecuali pembuat aplikasi telah mengambil langkah-langkah untuk menyelamatkan status aplikasi selama proses penghancuran, itu akan hilang (dan menyimpan keadaan yang tepat dalam hal-hal seperti game cukup tidak praktis).
Dokumen lain yang bagus (tetapi juga bertele-tele) adalah dokumen yang mencakup Siklus Hidup Aktivitas (ada bagan alur yang bagus jika Anda gulirkan sedikit ke bawah).
sumber
Menekan tombol Rumah memungkinkan pengguna untuk memulai Tugas baru, dengan menunjukkan peluncur. Semua Tugas aktif (dan karenanya Aktivitas termasuk contoh "Kontrol Udara" Anda) akan memanggil metode mereka
onPause()
.Terserah Aplikasi (dan Aktivitas mereka) untuk mengembalikan keadaan sebelumnya yang tepat ketika kembali terlihat. Mungkin juga Proses Aplikasi terbunuh saat Kegiatan dilatar belakangi, tetapi ini seharusnya tidak memengaruhi pengalaman pengguna. Pengguna seharusnya tidak dapat memberi tahu perbedaan jika suatu Kegiatan hanya dijeda atau jika itu juga dibunuh. Ini bisa menjelaskan perilaku berbeda dari Kontrol Udara yang bisa menjadi petunjuk implementasi yang salah dari manajemen siklus hidup Android.
sumber
destroy()
komponen aplikasi yang sesuai.onStop
metode ini dipanggil. Proses yang terbunuh tidak berarti aktivitasnyaonDestroyed
disebut metodenya, meskipun memang mirip. "Membunuh" proses Kegiatan berarti VM dihapus dari RAM. Bagi saya ini (Android membunuhnya) tampaknya akan memengaruhi pengalaman pengguna.Reputasi saya masih terlalu rendah di situs ini untuk memilih, jadi saya menjawab untuk menegaskan jawaban Flow. Saya terus mengalami masalah ini di salah satu aplikasi saya. Saya memiliki berbagai kontrol pemintal dan Anda harus secara eksplisit menyimpan statusnya di onPause () dan kemudian mengembalikan status di onResume () - Android tidak mengingat statusnya secara otomatis.
Komplikasi lain adalah bahwa terkadang Android akan memanggil fungsi onCreate () aplikasi ketika Anda hanya berharap untuk memanggil onResume ().
Jadi masalah Anda dengan Kontrol Udara (atau aplikasi lain) khusus untuk aplikasi itu dan Anda harus melaporkan perilaku tersebut kepada pengembang untuk diperbaiki. Sebagian besar aplikasi memiliki email kontak di Pasar.
BTW, jika Anda ingin memahami siklus hidup aplikasi, saya merekomendasikan Bab 2 dari Hello Burn, Android Ed, terutama gambar 2.3.
sumber
Tombol Beranda Ditekan saat dalam aplikasi:
Sebagian besar aplikasi akan menyimpan statusnya (bit data apa pun yang diperlukan untuk menjaga dirinya konsisten ketika sedang dilanjutkan), dan perangkat akan beralih ke aplikasi peluncur.
Tombol Beranda Ditekan saat di layar Beranda:
Ini dapat dikonfigurasi oleh banyak peluncur pihak ke-3; Namun banyak dari mereka default untuk membawa Anda kembali ke layar utama "utama" Anda (peluncur default melakukan ini).
Hal yang mungkin menjadi perhatian teman Anda:
Mengalihkan aplikasi dapat menjadi memori yang intensif dan menyebabkan beberapa disk menulis untuk menyimpan data. Ini menggunakan baterai; namun biasanya ini bukan penyebab utama pengurasan baterai pada perangkat (sistem operasi dioptimalkan untuk melakukan hal-hal ini).
Beberapa aplikasi akan terus berjalan sebagai aplikasi latar belakang, jadi menekan tombol beranda tidak akan mematikannya (mis. Google Play Music akan tetap bermain setelah menekan tombol beranda).
Teman Anda mungkin khawatir bahwa dengan menekan tombol beranda Anda tidak keluar dari program, dan karena itu ia masih berjalan. Android akan membongkar aplikasi tersebut seperlunya.
Anda dan teman Anda harus lebih mementingkan tampilan - yang menggunakan daya paling besar.
sumber