Answers:
在Android上的终端应用中,输入(需要root访问权限):
su
am stop-user USER_ID
例如,对于来宾用户,它USER_ID
在我的设备中是,11
因此命令应为am stop-user 11
。
am stop-user
不会处理多个输入,因此您必须为要暂停的每个辅助用户执行命令。
这与重启设备有些不同。如果您查看am
的用法,您会看到,
am stop-user: stop execution of USER_ID, not allowing it to run any code until a later explicit start or switch to it.
如前所述,它只是暂停与该用户帐户相关联的所有活动,因此,只要提供明确的启动或切换,您的会话就会恢复,而不是从头开始。
要确认用户确实已暂停或未在运行,请参阅我关于如何从ADB查找当前正在运行的用户名/ ID的答案。
简短地讲,pm list users
或dumpsys activity
会告诉您用户是RUNNING
还是SHUTDOWN
。后一个命令更好。如果确实终止了用户会话am stop-user
,您将看到mState=SHUTDOWN
该用户。但是,如果自重新启动以来一次都没有激活用户,则不会看到其任何条目。
adb install -r app.apk
。不知道这是否是问题。
android-5.1.1
并且按规定工作。我没有检查脚本部分,但是在发出时am stop-user 10
,第二个用户的所有进程都被杀死,没有在命令中列出Settings > Apps
或未在ps
命令中列出。因此,这是一种方式,但是android-5.0.2
当前该命令存在问题,或者我猜该功能在该版本中尚未实现。但是5.1有更多无法忍受的错误可供我切换。谢谢您:)
am stopuser 10
,仅pm list users
在用户未运行时显示命令。我检查adb shell ps
后am stop-user 10
,可以找到u10_axx
正在运行的进程。为了检查它们是否停止,我尝试在第二个用户的终端上运行shell脚本。该脚本每秒循环一个echo语句(显示秒)。使用am stop-user 10
命令启动此脚本后,等待5分钟并重新启动第二个用户会话,可以说该脚本未停止。它一直运行着。