From 7f91d8628320f8669efb2ba660c7ca1dcd2da881 Mon Sep 17 00:00:00 2001 From: Tom O'Neill Date: Mon, 9 Sep 2013 10:33:52 -0700 Subject: [PATCH] Specify user when starting service - Improve logging - Fix b/10621831 Change-Id: Icbb265ce53640dcf63f1c81d682f5811f196efcc --- .../settings/location/SettingsInjector.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/location/SettingsInjector.java b/src/com/android/settings/location/SettingsInjector.java index 12bf38fecd0..b9190802e88 100644 --- a/src/com/android/settings/location/SettingsInjector.java +++ b/src/com/android/settings/location/SettingsInjector.java @@ -312,7 +312,8 @@ class SettingsInjector { mSettingsBeingLoaded.remove(timedOutSetting); mTimedOutSettings.add(timedOutSetting); if (Log.isLoggable(TAG, Log.WARN)) { - Log.w(TAG, "Timed out trying to get status for: " + timedOutSetting); + Log.w(TAG, "Timed out after " + timedOutSetting.getElapsedTime() + + " millis trying to get status for: " + timedOutSetting); } break; default: @@ -447,13 +448,21 @@ class SettingsInjector { } else { startMillis = 0; } - mContext.startService(intent); + + // Start the service, making sure that this is attributed to the current user rather + // than the system user. + mContext.startServiceAsUser(intent, android.os.Process.myUserHandle()); + } + + public long getElapsedTime() { + long end = SystemClock.elapsedRealtime(); + return end - startMillis; } public void maybeLogElapsedTime() { if (Log.isLoggable(TAG, Log.DEBUG) && startMillis != 0) { - long end = SystemClock.elapsedRealtime(); - Log.d(TAG, this + " update took " + (end - startMillis) + " millis"); + long elapsed = getElapsedTime(); + Log.d(TAG, this + " update took " + elapsed + " millis"); } } }