Browse Source

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

master
Reece H. Dunn 12 years ago
parent
commit
fab65bd5db
2 changed files with 16 additions and 7 deletions
  1. 3
    3
      .gitignore
  2. 13
    4
      src/com/googlecode/eyesfree/espeak/eSpeakActivity.java

+ 3
- 3
.gitignore 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


+ 13
- 4
src/com/googlecode/eyesfree/espeak/eSpeakActivity.java View File

@@ -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

Loading…
Cancel
Save