Apa arti tombol "Force stop"?

26

Ketika saya pergi ke Settings > Applications > Manage Applications > Downloadedsaya melihat daftar aplikasi. Jika saya memilih beberapa aplikasi saya melihat tombol "Force stop" aktif, tetapi beberapa aplikasi memiliki tombol ini redup.

Apa artinya? Apa yang terjadi jika saya menekan tombol ini?

Tombol ini tidak dapat berarti aplikasi berjalan, karena aplikasi dengan tombol ini tidak tercantum dalam Runningbagian.

Dapatkah saya mendaftar hanya aplikasi yang memiliki Force stoptombol aktif dan menghapus instalannya?


Versi Android: 3.2

Suzan Cioc
sumber

Jawaban:

18

Seperti yang dikatakan dalam komentar saya untuk jawaban paco, informasi yang dia berikan sebagian besar benar: Sebagian besar aplikasi tidak keluar sepenuhnya jika Anda meninggalkannya, dan tidak ada aplikasi yang harus keluar jika Anda meninggalkannya melalui tombol "Rumah". Selain itu, beberapa aplikasi memiliki layanan latar belakang yang sedang dijalankan yang tidak dapat dihentikan oleh pengguna.

Sekarang ada beberapa situasi di mana Anda memerlukan aplikasi (termasuk layanan latar belakangnya) untuk dihentikan - mis. Jika Anda ingin menghapus aplikasi itu (atau, jika ada aplikasi sistem, pembaruannya). Anda akan melihat ini ketika tombol "Force Stop" aktif, tombol "Uninstall" (atau "Remove") berwarna abu-abu - tetapi yang terakhir diaktifkan ketika Anda menghentikan aplikasi melalui "Force Stop". (Jika kedua tombol berwarna abu-abu, Anda dapat mengatakan itu adalah aplikasi sistem, yang - tidak dapat Anda hapus).

Btw: Jika tombol "Force Stop" berwarna abu-abu ("redup" seperti yang Anda katakan) itu berarti aplikasi saat ini tidak berjalan, juga tidak ada layanan yang berjalan (pada saat itu).

Izzy
sumber
1
You will notice this when the "Force Stop" button is active, the "Uninstall" (or "Remove") button is grayed out, dapatkah Anda memberikan contoh aplikasi yang memiliki perilaku ini? Saya baru saja membaca beberapa aplikasi saya dan menemukan bahwa kedua tombol "Force Stop" dan "Uninstall" diaktifkan. Saya menggunakan Android 4.4.2.
cychoi
1
Karena jawaban saya sudah 2 tahun, Kitkat tidak tersedia saat itu; perilaku ini mungkin telah berubah atau tidak memengaruhi semua aplikasi. Saya tidak dapat menguji dengan Kitkat (tidak ada perangkat yang menjalankannya), dan out-of-my-head tidak ingat paket mana yang pernah saya lihat, maaf.
Izzy
15

The kode belakang berhenti Angkatan tombol kompleks dan tidak berdokumen. Saya akan mereproduksinya kata demi kata dan kemudian memeriksanya satu per satu.

private void checkForceStop() {
    if (mDpm.packageHasActiveAdmins(mPackageInfo.packageName)) {
        // User can't force stop device admin.
        updateForceStopButton(false);
    } else if ((mAppEntry.info.flags&ApplicationInfo.FLAG_STOPPED) == 0) {
        // If the app isn't explicitly stopped, then always show the
        // force stop button.
        updateForceStopButton(true);
    } else {
        Intent intent = new Intent(Intent.ACTION_QUERY_PACKAGE_RESTART,
                Uri.fromParts("package", mAppEntry.info.packageName, null));
        intent.putExtra(Intent.EXTRA_PACKAGES, new String[] { mAppEntry.info.packageName });
        intent.putExtra(Intent.EXTRA_UID, mAppEntry.info.uid);
        intent.putExtra(Intent.EXTRA_USER_HANDLE, UserHandle.getUserId(mAppEntry.info.uid));
        getActivity().sendOrderedBroadcast(intent, null, mCheckKillProcessesReceiver, null,
                Activity.RESULT_CANCELED, null, null);
    }
}

Baris pertama ifmemeriksa apakah ada komponen paket yang merupakan admin perangkat (yaitu, jika diperiksa dalam daftar Administrator perangkat di halaman Keamanan aplikasi Pengaturan ). Jika demikian, tombol dinonaktifkan (berwarna abu-abu) sehingga Anda tidak dapat menghentikan admin perangkat.

Kemudian, else ifcek apakah paket tersebut sudah berhenti . Di sini, berhenti tidak hanya berarti "tidak berjalan". Sejauh yang saya tahu, paket dalam keadaan berhenti jika Anda tidak pernah menjalankan komponen apa pun darinya (seperti dengan meluncurkannya dari menu), atau jika Anda telah menekan tombol Force stop (yang ini atau dalam dialog "berhenti bekerja") dan tidak menjalankan komponennya lagi. Jika paket belum dihentikan, tombol ini diaktifkan .

The elsekasus mencakup kemungkinan langka yang aplikasi telah dihentikan dan bukan merupakan admin perangkat. Dalam hal ini, ini memberi layanan sistem lain kesempatan untuk mengaktifkan tombol. Misalnya, aplikasi mungkin memiliki set alarm dan pending, yang nantinya akan menyebabkan aplikasi untuk memulai kembali bahkan dari keadaan berhenti. Dalam hal ini, tombol akan diaktifkan. Jika tidak ada layanan sistem lain yang memiliki alasan untuk mengaktifkan tombol, itu akan dinonaktifkan.

Ringkasan

Tombol Force stop diaktifkan jika paket tersebut bukan admin perangkat dan Anda belum menghentikan paksa aplikasi ini atau menghentikannya secara paksa tetapi layanan sistem berpikir itu akan menjalankannya lagi.

Jika aplikasi sedang berjalan (dan itu bukan admin perangkat), tombol Force stop pasti akan diaktifkan, tetapi tombol yang diaktifkan tidak berarti aplikasi sedang berjalan.

Dan Hulme
sumber
Senang sekali Anda menunjukkan kepada kami kode yang menentukan apakah tombol ditampilkan atau tidak. Bagi seorang pengembang seperti saya, itu adalah jawaban yang sempurna. Tapi sungguh, ini hanya setengah jawabannya. Anda tidak menunjukkan apa yang terjadi ketika Anda benar-benar menekan tombol.
John Pankowicz
2

Android menyimpan 4 jenis aplikasi dalam memorinya. Saya tidak ingat semuanya kecuali menjalankan dan latar belakang cache adalah 2 dari mereka ... (latar belakang cache dapat diakses dengan mengklik tombol menu perangkat keras ketika di tab yang sedang berjalan dan memilih opsi yang muncul)

Jadi meskipun itu mungkin tidak terlihat dalam proses yang sedang berjalan , itu tidak sepenuhnya mati.

Sebagian besar harus dalam proses latar belakang cache .

juga, tentang task manager..Itu tidak disarankan untuk menggunakannya karena android telah di-hardcoded untuk mengelola aplikasi secara efisien.App/Task pembunuh sebenarnya agak menguras baterai seperti setelah pembunuh membunuh aplikasi, sesuai dengan algoritma android berikut, mereka akan mulai lagi! (dan aplikasi mengambil lebih banyak memori saat startup daripada dalam kondisi ideal) sehingga menjadi siklus dan menghabiskan baterai.

jadi tombol force close aktif pada sebagian besar proses yang berjalan dan di-cache dan mungkin ada pada beberapa aplikasi yang berada di dua jenis proses lainnya!

pada aplikasi lain, keluar!

Nirmik
sumber
1
Ini lebih dari 4 jenis (lihat Memahami Aplikasi Android dan Siklus Hidup Aktivitas untuk penjelasan yang lebih dekat). Tetapi kelas-kelas itu tidak ada hubungannya dengan tombol "force stop", setidaknya tidak secara langsung (lihat jawaban saya : tombol "force stop" aktif berarti bahwa aplikasi itu sendiri atau salah satu layanan terdaftarnya sedang berjalan).
Izzy
-2

Tombol ini aktif untuk aplikasi yang sedang berjalan atau sedang berjalan sejak terakhir kali Anda memulai perangkat Anda.

Android tidak membunuh aplikasi sepenuhnya ketika Anda keluar dari itu, tombol ini untuk menutup sepenuhnya aplikasi dan menghapusnya dari tumpukan (aplikasi berjalan), juga tombol ini membebaskan memori yang digunakan oleh aplikasi.

Tidak ada cara untuk membuat daftar aplikasi yang berjalan, juga aplikasi yang berjalan di latar belakang memiliki tombol ini.

Ada aplikasi pembunuh gratis di Play Store, untuk mengelola memori perangkat Anda secara otomatis.

pacoespinoza
sumber
3
Sementara informasi dasar sudah benar: lebih baik hapus bagian tentang "pembunuh otomatis". Mungkin ada beberapa waktu ketika mereka dibutuhkan (sebelum Android 2.x), tetapi mereka benar-benar kontra-produktif dan sebagian besar memiliki efek negatif pada runtime baterai.
Izzy