Don't start location providers until the system is ready.

Change-Id: Id545e95705e59ffbaaab8a679a1b7df488813101
BUG: 2461320

Signed-off-by: Mike Lockwood <lockwood@android.com>
diff --git a/services/java/com/android/server/LocationManagerService.java b/services/java/com/android/server/LocationManagerService.java
index dd351be..c0dcdf9 100644
--- a/services/java/com/android/server/LocationManagerService.java
+++ b/services/java/com/android/server/LocationManagerService.java
@@ -485,14 +485,17 @@
         super();
         mContext = context;
 
-        Thread thread = new Thread(null, this, "LocationManagerService");
-        thread.start();
-
         if (LOCAL_LOGV) {
             Log.v(TAG, "Constructed LocationManager Service");
         }
     }
 
+    void systemReady() {
+        // we defer starting up the service until the system is ready 
+        Thread thread = new Thread(null, this, "LocationManagerService");
+        thread.start();
+    }
+
     private void initialize() {
         // Create a wake lock, needs to be done before calling loadProviders() below
         PowerManager powerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);