我在AsyncTask中有一个TimerTask,定时器调用下面发布的speakOut类来发音。当我使用SpeakOut1类时,文本不是 发音完全,但当我使用SpeakOut2类时,文本发音应该是。
在任何一种情况下,我都使用getApplicationContext()从AsyncTask传递上下文。
任何人都可以解释为什么它不能用于SpeakOut1并且它在SpeakOut2中有用吗?
请让他们知道如何解决它
SpeakOut1 :
private class SpeakOut extends TimerTask {
private Context mCtx = null;
private String mText = null;
private TTSCtrl mTTS = null;
public SpeakOut(Context ctx, String text) {
this.mCtx = ctx;
this.mText = text;
}
@Override
public void run() {
this.mTTS = new TTSCtrl(this.mCtx);
this.mTTS.pronounce(this.mText);
}
}
}
SpeakOut2 :
private class SpeakOut extends TimerTask {
private Context mCtx = null;
private String mText = null;
private TTSCtrl mTTS = null;
public SpeakOut(Context ctx, String text) {
this.mCtx = ctx;
this.mText = text;
this.mTTS = new TTSCtrl(ctx);
}
@Override
public void run() {
//this.mTTS = new TTSCtrl(this.mCtx);
this.mTTS.pronounce(this.mText);
}
}
}