eSpeakActivity: use a weak reference in the Handler to avoid memory leaks

This commit is contained in:
Reece H. Dunn
2012-12-13 00:28:49 +00:00
parent e2d15f6456
commit fab65bd5db
2 changed files with 16 additions and 7 deletions
+3 -3
View File
@@ -46,9 +46,9 @@ libespeak.so*
# programs
platforms/*/espeak-phoneme-data
espeak
espeakedit
speak
src/espeak
src/espeakedit
src/speak
# Linux/Source distribution files
@@ -30,6 +30,7 @@ import android.speech.tts.TextToSpeech;
import android.view.View;
import android.widget.TextView;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
public class eSpeakActivity extends Activity {
@@ -277,16 +278,24 @@ public class eSpeakActivity extends Activity {
}
};
private final Handler mHandler = new Handler() {
@Override
private static class EspeakHandler extends Handler {
private WeakReference<eSpeakActivity> mActivity;
public EspeakHandler(eSpeakActivity activity)
{
mActivity = new WeakReference<eSpeakActivity>(activity);
}
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case TTS_INITIALIZED:
onInitialized(msg.arg1);
mActivity.get().onInitialized(msg.arg1);
break;
}
}
};
}
private final Handler mHandler = new EspeakHandler(this);
private final View.OnClickListener mOnClickListener = new View.OnClickListener() {
@Override