Nút Stop Force Force có nghĩa là gì?


26

Khi tôi đi đến Settings > Applications > Manage Applications > Downloadedtôi thấy một danh sách ứng dụng. Nếu tôi chọn một số ứng dụng, tôi thấy nút "Buộc dừng" hoạt động, nhưng một số ứng dụng có nút này bị mờ.

Nó có nghĩa là gì? Điều gì xảy ra nếu tôi nhấn nút này?

Nút này không có nghĩa là ứng dụng đang chạy, vì các ứng dụng có nút này không được liệt kê trong Runningphần.

Tôi có thể liệt kê chỉ các ứng dụng có Force stopnút hoạt động và gỡ cài đặt chúng không?


Phiên bản Android: 3.2

Câu trả lời:


18

Như đã nói trong nhận xét của tôi về câu trả lời của paco, thông tin anh ấy cung cấp hầu hết là chính xác: Hầu hết các ứng dụng không thoát hoàn toàn nếu bạn rời khỏi chúng và không có ứng dụng nào sẽ thoát nếu bạn để lại thông qua nút "Trang chủ". Hơn nữa, một số ứng dụng có dịch vụ chạy nền mà người dùng không thể thoát.

Bây giờ có một số tình huống bạn cần dừng một ứng dụng (bao gồm cả dịch vụ nền của nó) - ví dụ: nếu bạn muốn gỡ cài đặt ứng dụng đó (hoặc, trong trường hợp ứng dụng hệ thống, các bản cập nhật của nó). Bạn sẽ nhận thấy điều này khi nút "Buộc dừng" được kích hoạt, nút "Gỡ cài đặt" (hoặc "Xóa") có màu xám - nhưng nút này sẽ được kích hoạt khi bạn dừng ứng dụng thông qua "Dừng dừng". (Nếu cả hai nút đều có màu xám, bạn có thể nói đó là ứng dụng hệ thống - bằng cách này - bạn không thể gỡ cài đặt).

Btw: Nếu nút "Buộc dừng" chuyển sang màu xám ("mờ" khi bạn đặt nó) thì có nghĩa là ứng dụng đó hiện không chạy, cũng không có dịch vụ nào đang chạy (tại thời điểm đó).


1
You will notice this when the "Force Stop" button is active, the "Uninstall" (or "Remove") button is grayed out, bạn có thể đưa ra một ứng dụng ví dụ có hành vi này không? Tôi chỉ lướt qua một số ứng dụng của mình và thấy rằng cả hai nút "Buộc dừng" và "Gỡ cài đặt" đều được kích hoạt. Tôi đang dùng Android 4.4.2.
cychoi

1
Vì câu trả lời của tôi đã được 2 tuổi rồi, Kitkat không có sẵn hồi đó; hành vi này có thể đã thay đổi hoặc không ảnh hưởng đến tất cả các ứng dụng. Tôi không thể kiểm tra với Kitkat (không có thiết bị nào chạy được điều đó) và xin lỗi, tôi không nhớ những gói nào tôi đã thấy với, xin lỗi.
Izzy

15

Các mã sau Buộc dừng nút rất phức tạp và không có giấy tờ. Tôi sẽ tái tạo nó nguyên văn và sau đó đi qua từng mảnh một.

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);
    }
}

Dòng đầu tiên ifkiểm tra xem bất kỳ thành phần nào của gói là quản trị viên thiết bị (nghĩa là, nếu nó được kiểm tra trong danh sách Quản trị viên thiết bị trong trang Bảo mật của ứng dụng Cài đặt ). Nếu vậy, nút bị tắt (chuyển sang màu xám) để bạn không thể dừng quản trị viên thiết bị.

Sau đó, else ifkiểm tra nếu gói đã dừng lại . Ở đây, dừng lại không chỉ có nghĩa là "không chạy". Theo như tôi có thể nói, một gói ở trạng thái dừng nếu bạn chưa bao giờ chạy bất kỳ thành phần nào từ nó (chẳng hạn như bằng cách khởi chạy nó từ menu) hoặc nếu bạn đã nhấn nút Buộc dừng (cái này hoặc trong hộp thoại "ngừng hoạt động") và không chạy lại bất kỳ thành phần nào của nó. Nếu gói chưa bị dừng, nút được bật .

Vụ elseviệc này bao gồm một trường hợp hiếm hoi là một ứng dụng đã bị dừng và không phải là quản trị viên thiết bị. Trong trường hợp này, nó cung cấp cho các dịch vụ hệ thống khác một cơ hội để kích hoạt nút. Ví dụ: ứng dụng có thể có bộ báo động và đang chờ xử lý, điều này sau đó sẽ khiến ứng dụng được khởi động lại ngay cả từ trạng thái dừng. Trong trường hợp này, nút sẽ được kích hoạt. Nếu không có dịch vụ hệ thống nào khác có lý do để kích hoạt nút này, nó sẽ bị vô hiệu hóa.

Tóm lược

Các Buộc dừng nút được kích hoạt nếu gói không phải là một quản trị viên thiết bị một trong hai bạn chưa ép dừng lại ứng dụng này hoặc bạn có lực ngưng nó nhưng một dịch vụ hệ thống nghĩ rằng nó sẽ chạy nó một lần nữa.

Nếu ứng dụng đang chạy (và đó không phải là quản trị viên thiết bị), nút Buộc dừng chắc chắn sẽ được bật, nhưng nút được bật không có nghĩa là ứng dụng đang chạy.


Thật tuyệt khi bạn chỉ cho chúng tôi mã xác định xem nút có được hiển thị hay không. Đối với một nhà phát triển như tôi đó là câu trả lời hoàn hảo. Nhưng thực sự, đây chỉ là một nửa câu trả lời. Bạn không hiển thị những gì xảy ra khi bạn thực sự nhấn nút.
John Pankowicz

2

Android duy trì 4 loại ứng dụng trong bộ nhớ của nó. Tôi không nhớ tất cả nhưng nền chạybộ nhớ cache là 2 trong số đó ... (nền được lưu trong bộ nhớ cache có thể được truy cập bằng cách nhấp vào nút menu phần cứng khi trong tab đang chạy và chọn tùy chọn bật lên)

Vì vậy, mặc dù nó có thể không được nhìn thấy trong các quy trình đang chạy , nhưng nó không hoàn toàn chết.

Chủ yếu là nó sẽ được xử lý trong bộ đệm nền .

Ngoài ra, về các trình quản lý tác vụ..Không nên sử dụng chúng vì Android đã được mã hóa cứng để quản lý các ứng dụng một cách hiệu quả. một lần nữa! (và các ứng dụng chiếm nhiều bộ nhớ khi khởi động hơn ở trạng thái lý tưởng), do đó, nó trở thành một chu kỳ và làm cạn kiệt pin.

vì vậy nút đóng lực đang hoạt động trên hầu hết các quy trình đang chạy và được lưu trong bộ nhớ cache và có thể tồn tại trên một số ít ứng dụng nằm trong hai loại quy trình khác!

trên các ứng dụng khác greyd của nó ra!


1
Đó là hơn 4 loại (xem Hiểu về ứng dụng và vòng đời hoạt động của Android để được giải thích kỹ hơn). Nhưng các lớp đó không liên quan gì đến nút "buộc dừng", ít nhất là không trực tiếp (xem câu trả lời của tôi : nút "dừng dừng hoạt động" đơn giản có nghĩa là chính ứng dụng hoặc một trong các dịch vụ đã đăng ký của nó hiện đang chạy).
Izzy

-2

Nút này đang hoạt động cho các ứng dụng đang chạy hoặc đang chạy kể từ lần cuối bạn khởi động thiết bị của mình.

Android không tắt ứng dụng hoàn toàn khi bạn thoát khỏi ứng dụng, nút này để đóng hoàn toàn ứng dụng và xóa ứng dụng khỏi ngăn xếp (ứng dụng đang chạy), cũng là nút này giải phóng bộ nhớ mà ứng dụng sử dụng.

Không có cách nào để liệt kê các ứng dụng đang chạy, các ứng dụng đang chạy trong nền có nút này.

Có các ứng dụng sát thủ miễn phí trong Cửa hàng Play, để tự động quản lý bộ nhớ của thiết bị.


3
Trong khi thông tin cơ bản là chính xác: tốt hơn nên loại bỏ phần về "kẻ giết người tự động". Có thể đã có lúc họ cần (trước Android 2.x), nhưng chúng hoàn toàn trái ngược và chủ yếu có ảnh hưởng tiêu cực đến thời gian chạy pin.
Izzy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.