Geben Sie in einer Terminal-App unter Android Folgendes ein (Root-Zugriff erforderlich):
su
am stop-user USER_ID
ZB für einen Gastbenutzer ist es USER_ID
in meinem Gerät 11
so, dass der Befehl wäre am stop-user 11
.
am stop-user
verarbeitet keine Mehrfacheingaben, daher müssen Sie den Befehl für jeden sekundären Benutzer ausführen, den Sie anhalten möchten.
Dies unterscheidet sich etwas vom Neustart des Geräts. Wenn Sie die Verwendung überprüfen am
, sehen Sie,
am stop-user: stop execution of USER_ID, not allowing it to run any code until a later explicit start or switch to it.
Wie gesagt, es werden einfach alle Aktivitäten angehalten, die diesem Benutzerkonto zugeordnet sind. Wenn also ein expliziter Start oder Wechsel vorgesehen ist, wird Ihre Sitzung fortgesetzt, anstatt von vorne zu beginnen.
Eine Bestätigung, dass der Benutzer tatsächlich angehalten hat oder nicht ausgeführt wird, finden Sie in meiner Antwort unter Wie kann ich herausfinden, wie der Benutzername / die ID derzeit von ADB ausgeführt wird ?
Kurz pm list users
oder dumpsys activity
würde Ihnen sagen, ob der Benutzer ist RUNNING
oder SHUTDOWN
. Der letztere Befehl ist besser. Wenn die Benutzersitzung tatsächlich angehalten wird am stop-user
, würden Sie mState=SHUTDOWN
für diesen Benutzer sehen. Wenn der Benutzer jedoch seit dem Neustart nicht einmal aktiviert wurde, wird kein Eintrag angezeigt.
am stopuser 10
wurde nur derpm list users
Befehl als Benutzer angezeigt, der nicht ausgeführt wurde. Ich habeadb shell ps
nacham stop-user 10
und findenu10_axx
laufenden Prozesse. Um zu überprüfen, ob sie angehalten wurden, habe ich versucht, ein Shell-Skript in einem Terminal des 2. Benutzers auszuführen. Das Skript wiederholt jede Sekunde eine Echoanweisung (zeigt die Sekunde an). Nachdemam stop-user 10
ich dieses Skript mit dem Befehl gestartet, 5 Minuten gewartet und die zweite Benutzersitzung neu gestartet habe, kann ich sagen, dass das Skript nicht angehalten wird. Es lief die ganze Zeit.adb install -r app.apk
. Ich weiß nicht, ob das das Problem ist.android-5.1.1
und es hat wie angegeben funktioniert. Ich habe den Skriptteil nicht überprüft, aber beim Ausgebenam stop-user 10
wurden alle Prozesse des 2. Benutzers abgebrochen und sind nicht inSettings > Apps
oder mitps
Befehl aufgeführt. So ist es übrigens, aberandroid-5.0.2
derzeit ist es entweder fehlerhaft mit diesem Befehl oder eine solche Funktionalität ist ab dieser Version nicht mehr implementiert, denke ich. Aber 5.1 hat noch unerträglichere Fehler, die ich noch wechseln muss. Vielen Dank :)