Trong ứng dụng đầu cuối trên Android, nhập (yêu cầu quyền truy cập root):
su
am stop-user USER_ID
Ví dụ: Đối với người dùng Khách, USER_ID
trong thiết bị của tôi là 11
lệnh nên có am stop-user 11
.
am stop-user
không xử lý nhiều đầu vào để bạn thực hiện lệnh cho mọi người dùng phụ mà bạn muốn tạm dừng.
Điều này hơi khác so với khởi động lại thiết bị. Nếu bạn kiểm tra am
cách sử dụng bạn sẽ thấy,
am stop-user: stop execution of USER_ID, not allowing it to run any code until a later explicit start or switch to it.
Như đã nói, nó chỉ đơn giản là tạm dừng tất cả các hoạt động liên quan đến tài khoản người dùng đó, vì vậy bất cứ khi nào bắt đầu hoặc chuyển đổi rõ ràng, phiên của bạn sẽ tiếp tục thay vì bắt đầu lại từ đầu.
Để xác nhận rằng người dùng thực sự đã tạm dừng hoặc không chạy, hãy xem câu trả lời của tôi để biết cách tìm tên người dùng / ID hiện đang chạy từ ADB ?
Nói ngắn gọn, pm list users
hoặc dumpsys activity
sẽ cho bạn biết người dùng là RUNNING
hay SHUTDOWN
. Lệnh sau là tốt hơn. Nếu phiên người dùng thực sự bị tạm dừng am stop-user
, bạn sẽ thấy mState=SHUTDOWN
người dùng đó. Tuy nhiên, nếu người dùng chưa được kích hoạt ngay cả khi khởi động lại, bạn sẽ không thấy bất kỳ mục nào của nó.
am stopuser 10
đã nói chỉ hiển thịpm list users
lệnh khi người dùng không chạy. Tôi đã kiểm traadb shell ps
sauam stop-user 10
và có thể tìm thấyu10_axx
các quy trình đang chạy. Để kiểm tra xem chúng có bị dừng hay không, tôi đã thử chạy tập lệnh shell trong thiết bị đầu cuối trên người dùng thứ 2. Kịch bản lặp một câu lệnh echo mỗi giây (hiển thị giây). Sau khi bắt đầu tập lệnh này, sử dụngam stop-user 10
lệnh, đợi 5 phút và bắt đầu lại phiên người dùng thứ 2, tôi có thể nói rằng tập lệnh không bị dừng. Nó chạy trong toàn bộ thời gian.