我嘗試在點擊按鈕時創建一個進度條。進度條只有在處理其他所有內容後纔可見。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
不起作用。我首先執行其他代碼。我希望進度條顯示它被調用的確切時刻。 –