我正在为root用户开发的安卓应用程序中,执行了一个关机操作:
su reboot -p
它运行得很好,但我注意到手机几乎立即关闭(与显示关闭动画并可能执行其他操作相反)。
这是以编程方式关闭安卓手机的正确方法吗?在关机之前是否有需要执行的一些关键代码?
我正在为root用户开发的安卓应用程序中,执行了一个关机操作:
su reboot -p
它运行得很好,但我注意到手机几乎立即关闭(与显示关闭动画并可能执行其他操作相反)。
这是以编程方式关闭安卓手机的正确方法吗?在关机之前是否有需要执行的一些关键代码?
am start -a android.intent.action.ACTION_REQUEST_SHUTDOWN
/**
* 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();
我认为这个本地函数对应于你的su reboot -p
。此外,你可以从引用代码注释中看到,你应该使用ShutdownThread来进行干净的关机。
在ShutdownThread中,Android做了很多事情。
因此,你可以看到做su reboot -p
是错误的。
http://developer.android.com/reference/android/os/PowerManager.html
。PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
pm.reboot("Because I want you to reboot!")
这应该可以工作。