在ShutdownThread.java中,在关机之前,为了防止意外情况,会将关机原因写入一个properties节点:
然后在关机途中,用下面的命令,看到节点会被写入。而重新开机之后,这个节点会被系统自动清空。所以这个节点可以用来做判断当前是否在关机的标志。
下面代码可以直接复制使用(取自系统源码):
//节点
public static final String SHUTDOWN_ACTION_PROPERTY = "sys.shutdown.requested";
//判断是否正在关机
final String shutdownAction = SystemProperties.get(SHUTDOWN_ACTION_PROPERTY, "");
Log.d(TAG, "shutdown action = " + shutdownAction);
if (shutdownAction != null && shutdownAction.length() > 0) {
//do something
return;
}