我在我的APP中使用TTS.在onPuase方法期间,我使用以下代码来停止引擎.问题是每当我暂停活动时说使用主页按钮,我得到错误,因为我已粘贴在日志猫部分.我从log cat(Activity com.example.DragDrop.PlaySeries泄漏了ServiceConnection)中了解到这个问题是由于一些泄漏造成的.但问题不是停止我的应用程序或干扰任何功能.但我想知道这个问题的严重性以及如何避免这个问题?
请帮忙
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
Log.i("PlaySeries", "In pause play series");
if(tts !=null){
Log.i("PlaySeries", "In pause play series");
tts.stop();
// tts.shutdown();
}
}
@Override
protected void onDestroy() {
//Close the Text to Speech Library
if(tts !=null){
Log.i("PlaySeries", "In pause play series");
tts.stop();
tts.shutdown();
}
super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)
并在onCreate
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.series);
tts = new TextToSpeech(this,this);
}
Run Code Online (Sandbox Code Playgroud)
03-22 10:46:45.205: E/ActivityThread(3881): Activity com.example.DragDrop.PlaySeries has leaked ServiceConnection android.speech.tts.TextToSpeech$Connection@2bbe5960 that was originally bound here03-22 10:46:45.205: E/ActivityThread(3881): android.app.ServiceConnectionLeaked: Activity com.example.DragDrop.PlaySeries has leaked ServiceConnection android.speech.tts.TextToSpeech$Connection@2bbe5960 that was originally bound here03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): android.app.ServiceConnectionLeaked: Activity com.example.DragDrop.PlaySeries has leaked ServiceConnection android.speech.tts.TextToSpeech$Connection@2bbe5960 that was originally bound here03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881): 03-22 10:46:45.205: E/ActivityThread(3881):
03-22 10:46:45.205: E/ActivityThread(3881):
Run Code Online (Sandbox Code Playgroud)
Hoa*_*yen 11
请拥有此代码 onDestroy
@Override
protected void onDestroy()
{
super.onDestroy();
tts.shutdown();
}
Run Code Online (Sandbox Code Playgroud)
Jul*_*rty 10
当我将TTS对象设置为静态时,我遇到了类似的错误(因此,即使设备旋转,TTS也继续说话).设备旋转时触发泄漏,因此屏幕在纵向和横向模式之间切换.
有一段时间我感到困惑,因为错误仅在运行早期版本Android的一些旧设备上报告.然而,一旦我发现了修复程序,我怀疑这个问题在所有设备和版本中都很常见,但可能会在较新的模型上被掩盖.
修复方法是使用Application Context初始化TTS对象,而不是当前(Activity)上下文.
这是我的代码
tts = new TextToSpeech(getApplicationContext(), this);
完整的差异可在以下网址获得:http: //code.google.com/p/android-tts-experiments/source/detail?r = b879fd1042151cbebc736b89a9fb660c895081ea
| 归档时间: |
|
| 查看次数: |
5572 次 |
| 最近记录: |