我尝试在点击按钮时创建一个进度条。进度条只有在处理其他所有内容后才可见。runOnUiThread调用后不会立即执行
MainActivity.this.runOnUiThread(new Runnable(){
@Override
public void run() {
progressBar.setVisibility(View.VISIBLE);
} });
我可以强制UI线程加入或类似的东西吗?
编辑:完整的onClick代码
public void onClick(View view) {
if (view == etLocation){
etLocation.setText("");
}
if (view == btnGo){
//progressBar.setVisibility(View.VISIBLE);
MainActivity.this.runOnUiThread(new Runnable(){
@Override
public void run() {
progressBar.setVisibility(View.VISIBLE);
} });
Thread buttonpress = new Thread(new Runnable() {
public void run()
{
buttonGo();
}
});
buttonpress.run();
}
if (view == datePicker){
new DatePickerDialog(MainActivity.this, date, myCalendar
.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
}
为什么?只是简单地打电话给setvisibility –
“在所有其他事情处理完成后”是什么意思? “我可以强制UI线程加入或类似的东西吗?” - 没有。当主应用程序线程得到控制时,你的'Runnable'应该运行。如果你的'Runnable'不是*正在运行,最有可能的原因是你正在绑定你的主应用程序线程。 – CommonsWare
不起作用。我首先执行其他代码。我希望进度条显示它被调用的确切时刻。 –