我带着 Intent 从另一个 Activity 开始一个 Activity 。第二个 Activity 没有任何 UI,它只是初始化一些变量并自动执行一个进行一些处理的方法。
首先,我从 onCreate 调用它来启动这个方法,但是在该方法内部,我使用了一些必须实现某些接口(interface)的功能,因此,我认为这些方法在它们有时间初始化之前就被执行了。
所以我的问题是如何在启动新 Activity 时自动启动一个方法,但在开始之前给它一些时间,让实现的接口(interface)初始化。
更新--
public class GameActivity extends Activity implements TextToSpeech.OnInitListener {
private static TextToSpeech tts;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.game);
tts = new TextToSpeech(this, this);
//...
SpeechWhenMotion();
}
public void SpeechWhenMotion() {
//...
tts.speak("Inicializando...", TextToSpeech.QUEUE_ADD, null);
//...
}
它不说话,因为它没有时间从 onInitListener 调用 onInit 方法。
最佳答案
您应该将对 SpeechWhenMotion()
的调用从 onCreate()
移至 onInit()
方法,从 TextToSpeech.OnInitListener
。 TextToSpeech.OnInitListener
的全部意义在于,当初始化完成时,您将获得对 onInit()
的回调。
您说得对,在 onCreate() 中调用它还为时过早 - 您必须等待 onInit()。
关于java - 执行方法之前的延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23610211/