Java 如何在特定时间后运行函数,然后在特定时间后将其关闭?

Java 如何在特定时间后运行函数,然后在特定时间后将其关闭?,java,android,Java,Android,我需要使我的图片A在按下按钮5秒后可见,然后在5秒后消失,然后图片B也出现5秒后消失: 我这样做是为了展示我想要的,但我知道这是错误的,所以如何以正确的方式来做 Button b = (Button) findViewById(R.id.button1); b.setOnTouchListener(new OnTouchListener() { setTimeout(function() { PictureA.setVisibilty(View.Visible); PictureB.setVi

我需要使我的图片A在按下按钮5秒后可见,然后在5秒后消失,然后图片B也出现5秒后消失: 我这样做是为了展示我想要的,但我知道这是错误的,所以如何以正确的方式来做

Button b = (Button) findViewById(R.id.button1);
b.setOnTouchListener(new OnTouchListener() {

setTimeout(function()
{
PictureA.setVisibilty(View.Visible);
PictureB.setVisibilty(View.Visible);
},5000); 
        return false;
}
});

我想要的正是: 1-按下按钮b 5秒钟后,图片A将可见 2-图片A将仅在10秒钟内可见,然后它将不可见 3-然后图片B将立即可见,仅持续15秒
4-15秒后,图片B将不可见

我认为类似的东西应该可以工作:

Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable(){
    public void run(){
        PictureA.setVisibility(View.Visible);
        PictureB.setVisibilty(View.Visible);
    }
}, 5000);
这将在5秒后执行runnable,这可能会起作用

Handler mHandler = new Handler();
mHandler.postDelayed(new Runnable(){
public void run(){
    PictureA.setVisibility(View.Visible);
    thread.sleep(5000);
    PictureB.setVisibilty(View.Visible);
}
}, 5000);

解决这个问题的一种方法是使用线程。我是android上的新手,所以这种方法对我的问题没有帮助。这将使图片a和b在5秒钟后可见,但我想使a先可见5秒钟,然后使其不可见,然后使图片b可见5秒钟,然后使其不可见。要进行3次单独的延迟后调用,一种是在5000毫秒后设置a可见,一种是在10000毫秒后设置a不可见,b可见,还有一种是在15000毫秒后设置b不可见。另一种方法是创建一个异步任务,但它们比这种方法复杂一些。。。然后,您可以在后台线程中使用Thread.sleep,然后使用进度更新更改图片的可见性。因此,在按下图片A 5秒钟后,图片B将可见,谢谢。这可能不是您想要的方法,因为在使用处理程序时,传递给postDelayed的runnable在创建处理程序的线程上运行。。因此,这将使你的线程睡眠5秒,而你的应用程序可能会在线程睡眠时没有响应