所以我正在构建一个实验应用程序,其中背景会随机改变颜色。
我被困在背景变化上。
我有改变背景颜色的工作代码,但是当我把它放在一个线程/try and catch 括号中时,应用程序被强制关闭并且不会给我一个错误?
以下是在 oncreate 方法中使用时有效的代码:
View view = this.getWindow().getDecorView();
view.setBackgroundColor(Color.RED);
但是,当我想让它“休眠”1 秒钟然后将其更改为红色时,它就会爆炸。
请注意,此方法是与 oncreate 分开的方法,并且是从那里调用的,并且由于某种原因不起作用?
public void changeBackground(final View v){
Thread timer = new Thread(){
public void run(){
try{
sleep(1000);
}catch (InterruptedException e) {
e.printStackTrace();
}finally{
v.setBackgroundColor(Color.RED);
}
}
};
timer.start();
}
我究竟做错了什么?我需要什么:当应用程序启动时,它必须等待 1 秒,然后更改背景颜色,而不会爆炸。
提前致谢!