Saya tidak dapat menemukan opsi untuk menghentikan program yang sedang berjalan (baik dalam mode debug atau rilis).
Jadi untuk saat ini, saya menghentikan program (mengembalikan kontrol ke Eclipse) hanya dengan menutup emulator.
Apakah ada cara yang lebih baik untuk melakukan ini? Sehingga saya tidak perlu menutup (dan memulai ulang) emulator?
android
eclipse
android-emulator
Android Eve
sumber
sumber
RemoteException sending setActive(false) notification
di viewportMereka yang merasa bosan beralih antar perspektif untuk menghentikan program (seperti yang saya lakukan), Anda dapat melihat jendela perangkat dalam perspektif Anda saat ini dengan memilih
sumber
Perlu diingat bahwa di Android, program biasanya hanya 'berhenti' jika Anda menyelesaikan () atau sistem menghancurkannya saat memori diperlukan. Mengapa berhenti sama sekali? Anda tidak perlu berhenti untuk fix / re-install / re-test, misalnya.
sumber
Dalam perspektif "Debug", pilih root aplikasi di bawah "Debug" (di mana daftar utas aktif berada) dan klik tombol berhenti.
sumber
Bekerja untuk saya.
Windows -> Buka perspektif -> Lainnya ... -> DDMS
Untuk kembali ke tampilan normal, Anda hanya perlu menekan tombol Java di sisi kanan atas. Anda juga dapat melakukannya dengan menekan: Windows -> Buka perspektif -> Lainnya ... -> Java
sumber
jawaban ini tidak berhubungan dengan Eclipse, tetapi karena pertanyaan ini muncul dalam pencarian Google untuk menghentikan program Android yang sedang berjalan, saya ingin menawarkan metode baris perintah. jalankan
adb shell
, temukan PID dari proses yang ingin Anda bunuhps
, misalnya milik saya adalah:u0_a46 2097 37 175520 19912 ffffffff 40037ebc S net.unternet.bleah.blarg
jadi adil
kill 2097
dan Anda akan melihat layar utama muncul lagi.sumber
Tambahkan breakpoint ke kode Anda di mana Anda ingin berhenti dan kemudian jalankan dalam mode Debug dengan menekan F11.
sumber
Gambar 1 - Banyak Zombie terbunuh selama penelitian Jawaban ini
Membunuh aplikasi Android, proses Java VM di tingkat OS tidak disarankan. Sayangnya, inilah yang dilakukan "stop" jendela perangkat eclipse, seperti halnya System.exit () dan perintah shell "kill".
Ini merongrong metode siklus hidup aplikasi normal seperti onStop (), onDestroy (), dan finalize ().
Banyak aplikasi memerlukan metode ini untuk keluar dengan lancar (misalnya jika mereka menggunakan objek sistem seperti Sensor, MediaPlayer, Equalizer, Visualizer, dll).
Objek sistem ini berkeliaran dengan pegangan kematian zombie pada sumber daya sistem jika release () tidak dipanggil secara eksplisit selama metode siklus hidup ini. Lihat gbr. 1 di atas. Ini dapat mencegah aplikasi memulai ulang, dan bahkan memerlukan boot ulang. Itu adalah aspek yang tidak bisa dilacak.
Satu-satunya solusi adalah memastikan Anda selalu keluar dari aplikasi secara bersih dengan panggilan ke onStop () atau onDestroy () atau setidaknya finalize (). Debugger melakukan ini, seperti halnya OS saat dimatikan.
Anda dapat menyetel aplikasi Anda untuk menjebak peristiwa SIG_HUP untuk memaksa keluar dengan lancar dari baris perintah.
Satu-satunya saat Anda akan menghentikan VM aplikasi adalah dalam status ANR (sudah menjadi zombie). ANR harus diperbaiki. Jangan pernah menerapkan aplikasi yang dapat memasuki keadaan ini. Itu sangat kasar.
Anda dapat menggunakan Google analytics dan Play Store untuk memantau penerapannya. Anda tidak ingin pengguna yang marah memberikan ulasan ANR bintang tunggal setelah harus reboot karena aplikasi zombie Anda. Sangat buruk.
Ingatlah bahwa Android adalah Linux: perlakukan itu seperti OS asli, dan hormati siklus hidup aplikasi jika tidak, Anda pasti akan menghadapi Kiamat Zombie yang ditakuti.
PS: Kalau analogi Zombie tidak suka bagaimana dengan Fantasia?
sumber
Lihat gambar: 1. Klik DDMS; 2. Pilih aplikasi saat ini; 3. Klik "Berhenti"
sumber