我有更改屏幕颜色的代码。
但我不知道如何阻止这个帖子:
lin = (LinearLayout)findViewById(R.id.mainlayout);
new Thread(new Runnable() {
public void run() {
while (finalStatus < 1) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
colorHandler.post(new Runnable() {
public void run() {
if(flag)
{
lin.setBackgroundColor(Color.BLUE);
flag = false;
}
else
{
lin.setBackgroundColor(Color.RED);
flag = true;
}
}
});
}
}
}).start();
我试着说:
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Toast.makeText(getBaseContext(),"STOP",Toast.LENGTH_SHORT).show();
finalStatus=1;
lin.setBackgroundColor(Color.BLACK);
}
});
并且线程停止了,但屏幕是红色或蓝色,我需要黑色。
此外,如何在我停止后启动此线程?
答案 0 :(得分:0)
我不确定获取背景为蓝色或红色的情况是什么,但我们假设将finalStatus设置为1.为了避免更改背景并仍然退出线程,您可以将其设置为不同的值在你的按钮点击监听器,让我们说111.在colorHandler.post之前添加以下条件将解决问题:
if (finalStatus == 111) {
return;
}
答案 1 :(得分:0)
只需将lin.setBackgroundColor(Color.BLACK);
代码放在外部线程run()方法中的While循环之后。并且不要忘记使用相同的处理程序,因为除了UI线程之外不会更新UI。