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分钟并重新启动第二个用户会话,可以说该脚本未停止。它一直运行着。