如何在Android中不使用新线程的情况下延迟代码的执行

时间:2017-01-06 03:44:17

标签: android delay

在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中的代码执行?

我找到了一种延迟代码执行的方法,但是它使用了一个处理程序,也就是说,创建了一个新的线程。我想在不使用线程的情况下延迟,是否可能?

2 个答案:

答案 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秒