android背景颜色更改

android背景颜色更改,android,multithreading,Android,Multithreading,在按下按钮以确认是否单击了正确的按钮后,我希望在一秒钟内更改我的背景颜色。之后,我想将颜色切换回黑色,但当我使用Thread.sleep()时,它不会在线程睡眠之前或之后更改颜色。还有其他建议吗 background.setBackgroundColor(Color.GREEN); thread.sleep(1000); background.setBackgroundColor(Color.BLACK); 按如下方式修改代码: background.setBackgroundColor(Co

在按下按钮以确认是否单击了正确的按钮后,我希望在一秒钟内更改我的背景颜色。之后,我想将颜色切换回黑色,但当我使用Thread.sleep()时,它不会在线程睡眠之前或之后更改颜色。还有其他建议吗

background.setBackgroundColor(Color.GREEN);
thread.sleep(1000);
background.setBackgroundColor(Color.BLACK);

按如下方式修改代码:

background.setBackgroundColor(Color.GREEN);
Thread thread = new Thread() {
    @Override
    public void run() {
        try {
            while(true) {
                sleep(1000);
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
};

thread.start();
background.setBackgroundColor(Color.BLACK);

希望对你有帮助

如下修改代码:

background.setBackgroundColor(Color.GREEN);
Thread thread = new Thread() {
    @Override
    public void run() {
        try {
            while(true) {
                sleep(1000);
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
};

thread.start();
background.setBackgroundColor(Color.BLACK);

希望对你有帮助

名为background的对象是什么?请使用此任务的倒计时。为什么不直接使用background.postDelayed()?background=(RelativeLayout)findviewbyd(R.id.background);名为background的对象是什么?请使用此任务的倒计时。为什么不直接使用background.postDelayed()?background=(RelativeLayout)findviewbyd(R.id.background);这似乎没有得到颜色的变化,但仍然让我保持点击不像以前,当我没有宣布一个新的线程。我可能应该提供更多的细节来帮助你。当前,此代码位于setOnClickListener中,如果按下正确的按钮,则背景颜色将变为绿色一秒钟,如果按下错误的按钮,则背景颜色将变为红色。当我尝试使用thread.run()而不是thread.start()时,它是无限循环的。插入此代码后,我得到的操作只是屏幕保持黑色。这似乎没有改变颜色,但仍然让我保持单击,不像以前我没有声明新线程。我可能应该提供更多的细节来帮助你。当前,此代码位于setOnClickListener中,如果按下正确的按钮,则背景颜色将变为绿色一秒钟,如果按下错误的按钮,则背景颜色将变为红色。当我尝试使用thread.run()而不是thread.start()时,它是无限循环的。插入此代码后,我得到的操作只是屏幕仍为黑色。