Java 执行方法前的延迟
我从另一项活动开始一项活动,并有目的。第二个活动没有任何UI,它只是初始化一些变量并自动执行一个进行某些处理的方法 首先,我从onCreate开始调用这个方法,但是在这个方法中,我使用了一些必须实现一些接口的功能,因此,我认为这些方法在初始化之前就已经被执行了 所以我的问题是,当我启动一个新的活动时,如何自动启动一个方法,但在启动之前给它一些时间,让实现的接口初始化 更新--Java 执行方法前的延迟,java,android,delay,Java,Android,Delay,我从另一项活动开始一项活动,并有目的。第二个活动没有任何UI,它只是初始化一些变量并自动执行一个进行某些处理的方法 首先,我从onCreate开始调用这个方法,但是在这个方法中,我使用了一些必须实现一些接口的功能,因此,我认为这些方法在初始化之前就已经被执行了 所以我的问题是,当我启动一个新的活动时,如何自动启动一个方法,但在启动之前给它一些时间,让实现的接口初始化 更新-- public class GameActivity extends Activity implements TextTo
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方法。您应该将调用从
onCreate()
移动到onInit()
方法,从TextToSpeech.onInitListener
移动到。TextToSpeech.OnInitListener
的全部要点是,初始化完成后,您将获得对onInit()的回调
您认为在onCreate()中调用它太早了,这是正确的-您必须等待onInit()。您可以添加一些代码吗,我认为您的代码中存在概念上的错误。您看过Android吗?您不需要为“接口初始化”提供任何额外的时间。。。一定是出了什么问题。你能发布一个可以验证的示例代码吗?@Hirak我说这是额外的时间,因为我一直在寻找这个问题,所有人都说发生这种情况是因为它在onInit()函数之前先被speak方法调用。@turbo我添加了代码,就像你说的,也许如果我在onResume()中调用该方法的话方法,而不是在onCreate()中,它有更多的时间来初始化所需的内容?