2011-08-08 5 views
1

私はAndroidを使用しているとTextToSpeechOnUtteranceCompletedListener() を使用しています。メモリに問題があります。 OnUtteranceCompletedListener() を使用しない場合は、すべて問題ありません。TextToSpeech onUterteranceCompleted bug

なぜですか?

final Runnable finish = new Runnable() 
{ 
    public void run() 
    { 
     Intent intent = new Intent(); 
     intent.setClass(main.this, main.class); 
     startActivity(intent); 
    } 
}; 


public void SAY_TTS() 
{  
    final HashMap<String, String> ttsParams = new HashMap<String, String>(); 
    ttsParams.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "done"); 
    tts = new TextToSpeech(this, new OnInitListener() { 
     public void onInit(int status) 
     { 
      if (status == TextToSpeech.SUCCESS) 
      { 
       tts.setLanguage(Locale.ENGLISH); 
       tts.setOnUtteranceCompletedListener(new OnUtteranceCompletedListener() { 
        public void onUtteranceCompleted(String uttID) 
        { 
         tts.stop(); 
         tts.shutdown(); 
         handler_finish.post(finish); 
        } 
       }); 

       tts.speak("this is a test", TextToSpeech.QUEUE_ADD, ttsParams);     

      } 
     } 
    });  
} 
+0

「メモリが消え始める」とはどういう意味ですか?どのようにそれを観察しましたか?それを追跡するためにどのツールを使用していますか? – ef2011

答えて

0

誰がこの問題を見れば、私はあなたがOnUtteranceCompletedListenerを使用してないているときに問題が場合に実際にあると思います。あなたがtts.shutdown()に電話することは決してありません。つまり、のリソースが解放されることはありません。Activityが終了したときにアンドロイドにメッセージが表示されます。