OSDN Git Service

Warn that SettingInjectorService must be fast
authorTom O'Neill <tomo@google.com>
Mon, 19 Aug 2013 20:10:19 +0000 (13:10 -0700)
committerTom O'Neill <tomo@google.com>
Mon, 19 Aug 2013 20:13:21 +0000 (13:13 -0700)
- Move UPDATE_INTENT to SettingInjectorSErvice

Change-Id: I9c8f8dc0878647a051cb852721b3436e9d55b391

api/current.txt
location/java/android/location/SettingInjectorService.java

index 118737f..2ae7af1 100644 (file)
@@ -11813,6 +11813,7 @@ package android.location {
     ctor public SettingInjectorService(java.lang.String);
     method protected abstract android.location.SettingInjectorService.Status getStatus();
     method protected final void onHandleIntent(android.content.Intent);
+    field public static final java.lang.String UPDATE_INTENT = "com.android.location.InjectedSettingChanged";
   }
 
   public static final class SettingInjectorService.Status {
index d410408..4bfa150 100644 (file)
@@ -69,6 +69,11 @@ import android.util.Log;
  *     to the user that it is not part of the system settings.</li>
  * </ul>
  *
+ * To ensure a good user experience, your {@link #onHandleIntent(Intent)} must complete within
+ * 200 msec even if your app is not already running. This means that both
+ * {@link android.app.Application#onCreate()} and {@link #getStatus()} must be fast. If you exceed
+ * this time, then this can delay the retrieval of settings status for other apps as well.
+ *
  * For consistency, the label and {@link #getStatus()} values should be provided in all of the
  * locales supported by the system settings app. The text should not contain offensive language.
  *
@@ -82,6 +87,7 @@ import android.util.Log;
  */
 // TODO: is there a public list of supported locales?
 // TODO: is there a public list of guidelines for settings text?
+// TODO: would a bound service be better? E.g., we could just disconnect if a service took too long
 public abstract class SettingInjectorService extends IntentService {
 
     /**
@@ -106,6 +112,12 @@ public abstract class SettingInjectorService extends IntentService {
      */
     public static final String MESSENGER_KEY = "messenger";
 
+    /**
+     * Intent action a client should broadcast when the value of one of its injected settings has
+     * changed, so that the setting can be updated in the UI.
+     */
+    public static final String UPDATE_INTENT = "com.android.location.InjectedSettingChanged";
+
     private final String mLogTag;
 
     /**