Avoid disk writes on UI thread.

Change-Id: I0a498e47afb2c9a5241e2f329c39e266550135a5
diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
index 7a1ac2e..c1e14ad 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
@@ -288,11 +288,18 @@
     ////////////////////////////
 
     public void switchToShortcutIME() {
-        IBinder token = mService.getWindow().getWindow().getAttributes().token;
+        final IBinder token = mService.getWindow().getWindow().getAttributes().token;
         if (token == null || mShortcutInfo == null) {
             return;
         }
-        mImm.setInputMethodAndSubtype(token, mShortcutInfo.getId(), mShortcutSubtype);
+        final String imiId = mShortcutInfo.getId();
+        final InputMethodSubtype subtype = mShortcutSubtype;
+        new Thread("SwitchToShortcutIME") {
+            @Override
+            public void run() {
+                mImm.setInputMethodAndSubtype(token, imiId, subtype);
+            }
+        }.start();
     }
 
     public Drawable getShortcutIcon() {