Use SystemService lifecycle API in input method service
Change-Id: Ic17667df60b30e5355b61a3601ad27a000cab3a3
diff --git a/services/core/java/com/android/server/InputMethodManagerService.java b/services/core/java/com/android/server/InputMethodManagerService.java
index 798a04a..4a123df 100644
--- a/services/core/java/com/android/server/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/InputMethodManagerService.java
@@ -742,6 +742,31 @@
}
}
+ public static final class Lifecycle extends SystemService {
+ private InputMethodManagerService mService;
+
+ public Lifecycle(Context context) {
+ super(context);
+ mService = new InputMethodManagerService(context);
+ }
+
+ @Override
+ public void onStart() {
+ LocalServices.addService(InputMethodManagerInternal.class,
+ new LocalServiceImpl(mService.mHandler));
+ publishBinderService(Context.INPUT_METHOD_SERVICE, mService);
+ }
+
+ @Override
+ public void onBootPhase(int phase) {
+ if (phase == SystemService.PHASE_ACTIVITY_MANAGER_READY) {
+ StatusBarManagerService statusBarService = (StatusBarManagerService) ServiceManager
+ .getService(Context.STATUS_BAR_SERVICE);
+ mService.systemRunning(statusBarService);
+ }
+ }
+ }
+
public InputMethodManagerService(Context context) {
mIPackageManager = AppGlobals.getPackageManager();
mContext = context;
@@ -894,7 +919,6 @@
}
}
}, filter);
- LocalServices.addService(InputMethodManagerInternal.class, new LocalServiceImpl(mHandler));
}
private void resetDefaultImeLocked(Context context) {