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

Change-Id: Id545e95705e59ffbaaab8a679a1b7df488813101
BUG: 2461320

Signed-off-by: Mike Lockwood <lockwood@android.com>
This commit is contained in:
Mike Lockwood
2010-02-22 16:36:44 -05:00
parent 2f6a01858b
commit 46db504de5
2 changed files with 11 additions and 5 deletions

View File

@@ -485,14 +485,17 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
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);

View File

@@ -209,6 +209,7 @@ class ServerThread extends Thread {
AppWidgetService appWidget = null;
NotificationManagerService notification = null;
WallpaperManagerService wallpaper = null;
LocationManagerService location = null;
if (factoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL) {
try {
@@ -303,8 +304,8 @@ class ServerThread extends Thread {
try {
Log.i(TAG, "Location Manager");
ServiceManager.addService(Context.LOCATION_SERVICE,
new LocationManagerService(context));
location = new LocationManagerService(context);
ServiceManager.addService(Context.LOCATION_SERVICE, location);
} catch (Throwable e) {
Log.e(TAG, "Failure starting Location Manager", e);
}
@@ -444,6 +445,7 @@ class ServerThread extends Thread {
final WallpaperManagerService wallpaperF = wallpaper;
final InputMethodManagerService immF = imm;
final RecognitionManagerService recognitionF = recognition;
final LocationManagerService locationF = location;
// We now tell the activity manager it is okay to run third party
// code. It will call back into us once it has gotten to the state
@@ -467,6 +469,7 @@ class ServerThread extends Thread {
if (appWidgetF != null) appWidgetF.systemReady(safeMode);
if (wallpaperF != null) wallpaperF.systemReady();
if (immF != null) immF.systemReady();
if (locationF != null) locationF.systemReady();
}
});