diff options
author | 2011-06-25 03:54:11 +0900 | |
---|---|---|
committer | 2011-06-26 00:14:40 +0900 | |
commit | 4f0d290c5d112ebac434bd8de4635f7d42ea2df0 (patch) | |
tree | 04e25e7f7605dd0860147fc0c169ccc381b1881f /java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java | |
parent | e7de39ac424356311ffde20f26c0517f241e2ba0 (diff) | |
download | latinime-4f0d290c5d112ebac434bd8de4635f7d42ea2df0.tar.gz latinime-4f0d290c5d112ebac434bd8de4635f7d42ea2df0.tar.xz latinime-4f0d290c5d112ebac434bd8de4635f7d42ea2df0.zip |
Avoid memory leak by by non-static Handler inner classes
bug: 4901934
Change-Id: I870ab2e621ef3640a84468f09c074cdd726dc963
Diffstat (limited to 'java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java')
-rw-r--r-- | java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java b/java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java index b718ebbb7..8969a2168 100644 --- a/java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java +++ b/java/src/com/android/inputmethod/deprecated/voice/VoiceInput.java @@ -19,6 +19,7 @@ package com.android.inputmethod.deprecated.voice; import com.android.inputmethod.latin.EditingUtils; import com.android.inputmethod.latin.LatinImeLogger; import com.android.inputmethod.latin.R; +import com.android.inputmethod.latin.StaticInnerHandlerWrapper; import android.content.ContentResolver; import android.content.Context; @@ -26,7 +27,6 @@ import android.content.Intent; import android.content.res.Configuration; import android.os.Build; import android.os.Bundle; -import android.os.Handler; import android.os.Message; import android.os.Parcelable; import android.speech.RecognitionListener; @@ -132,13 +132,20 @@ public class VoiceInput implements OnClickListener { private final static int MSG_RESET = 1; - private final Handler mHandler = new Handler() { + private final UIHandler mHandler = new UIHandler(this); + + private static class UIHandler extends StaticInnerHandlerWrapper<VoiceInput> { + public UIHandler(VoiceInput outerInstance) { + super(outerInstance); + } + @Override public void handleMessage(Message msg) { if (msg.what == MSG_RESET) { - mState = DEFAULT; - mRecognitionView.finish(); - mUiListener.onCancelVoice(); + final VoiceInput voiceInput = getOuterInstance(); + voiceInput.mState = DEFAULT; + voiceInput.mRecognitionView.finish(); + voiceInput.mUiListener.onCancelVoice(); } } }; |