summaryrefslogtreecommitdiffstats
path: root/core/java/android/os/Power.java
diff options
context:
space:
mode:
authorSan Mehat <san@google.com>2010-01-12 09:59:35 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-01-12 09:59:35 -0800
commitc93c70c4b849d31ff1b5e5cf2fb9462fd60e5da0 (patch)
tree87cf83cbc4cb36929bb76abacbe658903fd964c5 /core/java/android/os/Power.java
parentdfe25b0e0c382d04a59bb03c7f5f8689ece5395e (diff)
parent7ebf017658070323ed1c2bbd80c46c7cd2390d87 (diff)
downloadframeworks_base-c93c70c4b849d31ff1b5e5cf2fb9462fd60e5da0.zip
frameworks_base-c93c70c4b849d31ff1b5e5cf2fb9462fd60e5da0.tar.gz
frameworks_base-c93c70c4b849d31ff1b5e5cf2fb9462fd60e5da0.tar.bz2
Merge "framework: storage: Ensure that filesystems are unmounted before shutdown/reboot" into eclair
Diffstat (limited to 'core/java/android/os/Power.java')
-rw-r--r--core/java/android/os/Power.java18
1 files changed, 17 insertions, 1 deletions
diff --git a/core/java/android/os/Power.java b/core/java/android/os/Power.java
index 3679e47..bc76180 100644
--- a/core/java/android/os/Power.java
+++ b/core/java/android/os/Power.java
@@ -17,6 +17,8 @@
package android.os;
import java.io.IOException;
+import android.os.ServiceManager;
+import android.os.IMountService;
/**
* Class that provides access to some of the power management functions.
@@ -97,5 +99,19 @@ public class Power
* @throws IOException if reboot fails for some reason (eg, lack of
* permission)
*/
- public static native void reboot(String reason) throws IOException;
+ public static void reboot(String reason) throws IOException
+ {
+ IMountService mSvc = IMountService.Stub.asInterface(
+ ServiceManager.getService("mount"));
+
+ if (mSvc != null) {
+ try {
+ mSvc.shutdown();
+ } catch (Exception e) {
+ }
+ }
+ rebootNative(reason);
+ }
+
+ private static native void rebootNative(String reason) throws IOException ;
}