2017-07-26 53 views
0

我想创建一个西蒙说游戏,让用户知道哪些按钮打我决定我想做一些事情就像一个按钮点击更改背景等待一秒钟然后改回虽然按钮等待1秒点击,但提拉不会改变使用睡眠暂停方法一秒

我有什么不正确的工作看起来是这样的

view.setBackgroundResource(R.drawable.black); 

try { 
     TimeUnit.SECONDS.sleep(5);   
} catch(InterruptedException ex) { 
    Thread.currentThread().interrupt(); 
} 

view.setBackgroundResource(R.drawable.green); 
+1

看看处理程序:https://stackoverflow.com/a/9166354/940834。把你的代码放在处理程序中,然后把它放回去。延迟毫秒 – Doomsknight

+0

谢谢你的处理程序做了窍门 – helloworld

回答

0

尝试改变runOnUiThread视图背景使视图无效。

+1

这应该是一个评论...发布一些有用的代码片段OP – Akshay

1

你可以试试CountDownTimer。

// You can change millisInFuture and countDownInterval according to your need. 
long millisInFuture = 5000; 
long countDownInterval = 1000; 

new CountDownTimer(millisInFuture, countDownInterval) { 
    @Override 
    public void onTick(long l) { 

    } 

    @Override 
    public void onFinish() { 
     // Change your background color here 
     view.setBackgroundResource(R.drawable.green); 
    } 
}.start(); 
3

您可以使用Handler来实现此目的。在我的例子中,我设置了5秒的延迟,之后我通过view.setBackgroundResource(R.drawable.green);更改背景颜色。

Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      view.setBackgroundResource(R.drawable.green); 
     } 
    }, 5000); 
1

您可以使用new Handler()尝试下面的内容。

view.setBackgroundResource(R.drawable.black); 

    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      view.setBackgroundResource(R.drawable.green); 
     } 
    }, 5000);