2012-09-06 4 views
0

BroadcastReceiver에서 그래픽없이 액티비티를 호출하고 싶습니다. 그래픽이 없으면 몇 마디 말을하기 때문에.그래픽이없는 Android 액티비티

Intent iSpeechIntent = new Intent(context, TTS.class);       
iSpeechIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(iSpeechIntent); 

그러나 활동주기가 올바르게 완료되지 않았습니다. onDestroy() 메서드가 실행되지 않습니다. 왜?

@Override 
    public void onDestroy() { 
     // Don't forget to shutdown! 
     if (tts != null) { 
      tts.stop(); 
      tts.shutdown(); 
     } 
     super.onDestroy(); 
    } 

TTSEngine으로 일부 텍스트를 말하기 위해 그래픽 XML없이 작업을 사용하고 있다면 괜찮습니까?

답변

2

Activity lifecycle을 오해 한 것입니다. onDestroy()은 활동이 해제 될 때 이 아니며이라고합니다. 이를 기각 (즉, 다른 활동을 시작)하면 가 아닌은 활동을 파괴합니다 (단, 활동을 파기 할 경우 finish()으로 전화를 걸어 onDestroy() 메서드가 호출됩니다). 코드를 각각 onPause()onResume()으로 옮길 수도 있고, 작업에 UI가 필요하면 IntentService을 대신 사용해야합니다.

+0

설명해 주셔서 감사합니다. 나는 IntentService로 시도 할 것이다. 나는 초기화를위한 매개 변수로 Activity가 필요한 ispeech TTS도 사용하고있다. – senzacionale