Nel codice sorgente di Android, è possibile trovare il seguente:
/**
* Low-level function turn the device off immediately, without trying
* to be clean. Most people should use
* {@link android.internal.app.ShutdownThread} for a clean shutdown.
*
* @deprecated
* @hide
*/
@Deprecated
public static native void shutdown();
Penso che questa funzione nativa corrisponde alla tua su reboot -p
. Inoltre, è possibile vedere dal commento del codice indicato che è necessario utilizzare ShutdownThread per eseguire un arresto pulito.
In ShutdownThread, Android fa un sacco di cose.
- Arresta ActivityManager. Penso che l'arresto di ActivityManager significhi che tutte le attività supereranno il ciclo di vita necessario e, quindi, verranno memorizzati gli stati delle attività. Ma non sono sicuro. Non ho controllato
- Quindi, Android disattiva l'interfaccia della radio cellulare.
- Dopodiché, si spegne il Bluetooth.
- Infine, tenta di arrestare MountService.
Quindi, è possibile vedere che è sbagliato fare su reboot -p
.
@unforgettableid la modifica proposta è sia seriamente errate (le applicazioni non possono mai eseguito come root, solo al massimo nativo aiutanti), e relativamente inutile in quanto si tratta di una questione di 4 anni di basso valore che non necessita di essere rivista. –
@ChrisStratton: Grazie per avermi corretto; Ho rivisto il mio suggerimento di modifica. Un commentatore GitHub ha appena fatto riferimento a questo thread Overflow dello stack in un [commento GitHub] (https://github.com/ppareit/Shutdown/issues/4#issuecomment-188899438) lo scorso febbraio. Sono d'accordo sul fatto che sia stato sciocco per il commentatore di GitHub fare riferimento a un thread così antico. Tuttavia, lo ha fatto riferimento. Poiché le risposte erano così vecchie, qualcun altro sprecava il proprio tempo impegnandosi in modo subottimale in un progetto open source. – unforgettableid
@ChrisStratton: ho fatto una ricerca su Google ma non ho trovato nessun thread più recente che menzioni la soluzione 'svc power shutdown'. Se esiste un tale thread in futuro, dovremmo contrassegnare questo thread antico come un duplicato di quel thread più recente. Peccato che Google sembra dare classifiche di risultati così alti ai thread di Overflow dello stack così antichi. Forse potremmo in qualche modo aggiungere un avviso di contenuto obsoleto in alto. O, meglio ancora, forse dovremmo semplicemente segnalare le domande obsolete come duplicati di domande identiche più nuove. – unforgettableid