diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
index 5f981a0..6b49f9a 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
@@ -89,6 +89,24 @@
         void onUpdateMainDictionaryAvailability(boolean isMainDictionaryAvailable);
     }
 
+    /**
+     * Called every time {@link LatinIME} starts on a new text field.
+     * Dot not affect {@link AndroidSpellCheckerService}.
+     *
+     * WARNING: The service methods that call start/finish are very spammy.
+     */
+    void onStartInput();
+
+    /**
+     * Called every time the {@link LatinIME} finishes with the current text field.
+     * May be followed by {@link #onStartInput} again in another text field,
+     * or it may be done for a while.
+     * Dot not affect {@link AndroidSpellCheckerService}.
+     *
+     * WARNING: The service methods that call start/finish are very spammy.
+     */
+    void onFinishInput();
+
     boolean isActive();
 
     Locale getLocale();
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java
index a59253a..e5d770a 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java
@@ -202,6 +202,15 @@
     public DictionaryFacilitatorImpl() {
     }
 
+    @Override
+    public void onStartInput() {
+    }
+
+    @Override
+    public void onFinishInput() {
+    }
+
+    @Override
     public boolean isActive() {
         return mDictionaryGroup.mLocale != null;
     }
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 71dc30b..790cd69 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -792,6 +792,8 @@
     @SuppressWarnings("deprecation")
     void onStartInputViewInternal(final EditorInfo editorInfo, final boolean restarting) {
         super.onStartInputView(editorInfo, restarting);
+
+        mDictionaryFacilitator.onStartInput();
         // Switch to the null consumer to handle cases leading to early exit below, for which we
         // also wouldn't be consuming gesture data.
         mGestureConsumer = GestureConsumer.NULL_GESTURE_CONSUMER;
@@ -970,6 +972,7 @@
     void onFinishInputInternal() {
         super.onFinishInput();
 
+        mDictionaryFacilitator.onFinishInput();
         final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView();
         if (mainKeyboardView != null) {
             mainKeyboardView.closing();
