我正在尝试使用文本转语音创建应用程序。每当我从活动 Text_entry 移动到活动 CombChange 并返回时,我都会在日志 cat(下)中收到这些服务连接泄漏错误。
谁能明白为什么?
我只粘贴了 Text_Entry 和 CombChange 类的相关位 - 所以可能缺少声明和大括号等。
public class Text_entry extends Activity implements OnTouchListener, TextToSpeech.OnInitListener{
speech = new Speech(this);
Intent checkTTSIntent = new Intent();
checkTTSIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkTTSIntent, MY_DATA_CHECK_CODE);
Intent intent2 = new Intent(this, CombChange.class);
intent2.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent2.putExtra("newPat", enteredNumber);
startActivity(intent2);
}
@Override
public void onResume() {
super.onResume();
Intent intent = getIntent();
String hc =" ";
hc = intent.getExtras().getString("helpComb");
if (hc.equals("true"))
helpComb = true;
else
helpComb = false;
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == MY_DATA_CHECK_CODE) {
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
speech = new Speech(this);
}
else {
Intent installTTSIntent = new Intent();
installTTSIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installTTSIntent);
}
}
}
.
public class CombChange extends ListActivity {
speech = new Speech(this);
speech.changeText("enter the new combination");
speech.speaks();
SystemClock.sleep(1300);
Intent intent = new Intent(this, Text_entry.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("helpComb", "true");
speech.cleanUp();
startActivity(intent);
}
.
public class Speech implements TextToSpeech.OnInitListener {
private String toRead;
private TextToSpeech tts;
public Speech(Context c) {
tts = new TextToSpeech(c, this);
tts.setPitch(1.2f);
tts.setSpeechRate(1.5f);
}
public void speaks()
{
speakOut();
}
public void changeText(String changeTo)
{
toRead = changeTo;
}
public void cleanUp() {
//Don't forget to shutdown tts!
if (tts != null) {
tts.stop();
tts.shutdown();
}
}
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
int result = tts.setLanguage(Locale.UK);
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.e("TTS", "This Language is not supported");
} else {
speakOut();
}
} else {
Log.e("TTS", "Initilization Failed!");
}
}
protected void onStop()
{
if(tts != null){
tts.shutdown();
}
}
private void speakOut() {
tts.speak(toRead, TextToSpeech.QUEUE_FLUSH, null);
}
}
.
03-21 16:42:32.515: I/TextToSpeech(24023): Sucessfully bound to com.google.android.tts
03-21 16:42:32.535: E/ActivityThread(24023): Activity org.BT.Text_entry has leaked ServiceConnection android.speech.tts.TextToSpeech$Connection@427fd290 that was originally bound here
03-21 16:42:32.535: E/ActivityThread(24023): android.app.ServiceConnectionLeaked: Activity org.BT.Text_entry has leaked ServiceConnection android.speech.tts.TextToSpeech$Connection@427fd290 that was originally bound here
03-21 16:42:32.535: E/ActivityThread(24023): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:965)
03-21 16:42:32.535: E/ActivityThread(24023): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:859)
03-21 16:42:32.535: E/ActivityThread(24023): at android.app.ContextImpl.bindService(ContextImpl.java:1344)
03-21 16:42:32.535: E/ActivityThread(24023): at android.app.ContextImpl.bindService(ContextImpl.java:1336)
03-21 16:42:32.535: E/ActivityThread(24023): at android.content.ContextWrapper.bindService(ContextWrapper.java:401)
03-21 16:42:32.535: E/ActivityThread(24023): at android.speech.tts.TextToSpeech.connectToEngine(TextToSpeech.java:627)
03-21 16:42:32.535: E/ActivityThread(24023): at android.speech.tts.TextToSpeech.initTts(TextToSpeech.java:597)
03-21 16:42:32.535: E/ActivityThread(24023): at android.speech.tts.TextToSpeech.<init>(TextToSpeech.java:553)
03-21 16:42:32.535: E/ActivityThread(24023): at android.speech.tts.TextToSpeech.<init>(TextToSpeech.java:527)
03-21 16:42:32.535: E/ActivityThread(24023): at android.speech.tts.TextToSpeech.<init>(TextToSpeech.java:512)
03-21 16:42:32.535: E/ActivityThread(24023): at org.BT.Speech.<init>(Speech.java:14)
03-21 16:42:32.535: E/ActivityThread(24023): at org.BT.Text_entry.onCreate(Text_entry.java:97)
03-21 16:42:32.535: E/ActivityThread(24023): at android.app.Activity.performCreate(Activity.java:5184)
03-21 16:42:32.535: E/ActivityThread(24023): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083)
03-21 16:42:32.535: E/ActivityThread(24023): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
03-21 16:42:32.535: E/ActivityThread(24023): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
03-21 16:42:32.535: E/ActivityThread(24023): at android.app.ActivityThread.access$600(ActivityThread.java:140)
03-21 16:42:32.535: E/ActivityThread(24023): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227)
03-21 16:42:32.535: E/ActivityThread(24023): at android.os.Handler.dispatchMessage(Handler.java:99)
03-21 16:42:32.535: E/ActivityThread(24023): at android.os.Looper.loop(Looper.java:137)
03-21 16:42:32.535: E/ActivityThread(24023): at android.app.ActivityThread.main(ActivityThread.java:4898)
03-21 16:42:32.535: E/ActivityThread(24023): at java.lang.reflect.Method.invokeNative(Native Method)
03-21 16:42:32.535: E/ActivityThread(24023): at java.lang.reflect.Method.invoke(Method.java:511)
03-21 16:42:32.535: E/ActivityThread(24023): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
03-21 16:42:32.535: E/ActivityThread(24023): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
03-21 16:42:32.535: E/ActivityThread(24023): at dalvik.system.NativeStart.main(Native Method)
03-21 16:42:32.670: I/TextToSpeech(24023): Sucessfully bound to com.google.android.tts
03-21 16:42:32.670: D/(24023): 3333333333333333333333333333333333333333333333333
03-21 16:42:32.670: E/SpannableStringBuilder(24023): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
03-21 16:42:32.670: E/SpannableStringBuilder(24023): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
03-21 16:42:32.775: I/TextToSpeech(24023): Connected to TTS Service
03-21 16:42:32.780: I/TextToSpeech(24023): Connected to TTS Service