在Eclipse中,我发现使用TimeLine和KeyFrame可以延迟代码的执行,例如,在播放媒体之前等待4秒我使用了这段代码:
Timeline timeline = new Timeline();
KeyFrame keyframe = new KeyFrame(Duration.millis(4000), DelayAnimation ->
{
GeneralMethods PlayMusic = new GeneralMethods();
PlayMusic.playMusic(mediaPlayer);
});
timeline.getKeyFrames().add(keyframe);
timeline.play();
以前的代码在Eclipse中工作正常,我不需要创建新的线程。
我的问题是,是否有类似的方法来延迟Android中的代码执行?
我找到了一种延迟代码执行的方法,但是它使用了一个处理程序,也就是说,创建了一个新的线程。我想在不使用线程的情况下延迟,是否可能?
答案 0 :(得分:1)
Handler是你用来延迟线程中某些东西的东西。在下面的例子中,处理程序在等待十秒后使你的UI TextView消失;
private void makeTextViewDisappear(){
yourTV.setVisibility(View.VISIBLE);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
yourTV.setVisibility(View.INVISIBLE);
// OR yourTV.setVisibility(View.GONE) to reclaim the space
}
}, 10000);
}
如您所见,没有新的主题。
答案 1 :(得分:0)
Thread.sleep(10000)
它会将当前线程延迟10秒