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

# programs # programs


platforms/*/espeak-phoneme-data platforms/*/espeak-phoneme-data
espeak
espeakedit
speak
src/espeak
src/espeakedit
src/speak


# Linux/Source distribution files # Linux/Source distribution files



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

import android.view.View; import android.view.View;
import android.widget.TextView; import android.widget.TextView;


import java.lang.ref.WeakReference;
import java.util.ArrayList; import java.util.ArrayList;


public class eSpeakActivity extends Activity { 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) { public void handleMessage(Message msg) {
switch (msg.what) { switch (msg.what) {
case TTS_INITIALIZED: case TTS_INITIALIZED:
onInitialized(msg.arg1);
mActivity.get().onInitialized(msg.arg1);
break; break;
} }
} }
};
}
private final Handler mHandler = new EspeakHandler(this);


private final View.OnClickListener mOnClickListener = new View.OnClickListener() { private final View.OnClickListener mOnClickListener = new View.OnClickListener() {
@Override @Override

Loading…
Cancel
Save