没有图形的android活动

时间:2012-09-06 20:11:11

标签: android

从BroadcastReceiver我想调用一个没有图形的活动。没有图形,因为它会说一些话。

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();
    }

如果我使用没有图形XML的活动只是为了用TTSEngine讲一些文字,那就没关系了吗?

2 个答案:

答案 0 :(得分:2)

你误解了Activity lifecycle。当您的活动被解雇时,onDestroy()会被调用。并且解雇它(即通过开始另一个活动) NOT 等同于销毁活动(但是你可以通过调用finish()强制销毁活动 - 然后你的onDestroy()方法将是调用)。您可能希望将代码分别移至onPause()onResume(),或者您可以使用IntentService代替,如果您需要任何用户界面来执行此任务。

答案 1 :(得分:1)

我建议将Android服务用于此类任务http://developer.android.com/reference/android/app/Service.html