1
這裏是我的代碼:進度條不顯示,Android的
automaticCountryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
progressBar.setVisibility(View.VISIBLE);
if (ContextCompat.checkSelfPermission(HomeActivity.this,
Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED){
setUpLocationPermission();
return;
}
Log.d(TAG, String.valueOf(gps.canGetLocation()));
Log.d(TAG, String.valueOf(gps.getLocation()));
Log.d(TAG, String.valueOf(gps.getLatitude()));
Log.d(TAG, String.valueOf(gps.getLongitude()));
Geocoder myLocation = new Geocoder(HomeActivity.this);
try
{
myList = myLocation.getFromLocation(gps.getLatitude(), gps.getLongitude(), 1);
}
catch (Exception e)
{
Log.d(TAG, "unable");
e.printStackTrace();
}
if(myList != null) {
try {
String country = myList.get(0).getCountryName();
Log.d(TAG, country);
findCountryInArrayList(country);
}
catch (Exception e)
{
Toast.makeText(HomeActivity.this, "Didn't manage to automatically detect location.", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
}
});
}
我想在單擊視圖後,立即將進度變得可見。然而,直到所有的代碼完成之後,它才變得可見,這是違背整個觀點的。 爲什麼在點擊開始時沒有發生這種情況?我已經把progressBar.setVisibility(View.VISIBLE)放在頂部,爲什麼只有在所有代碼完成後才執行,有時需要幾秒鐘。
非常感謝。
謝謝了。就是這樣。 – RJB
但是,爲什麼是這樣,如果代碼的第一行是設置可見性?只有在以後我才能在UI線程上工作? – RJB
這裏實際的'onClick'方法在控制UI的線程中運行。直到此方法返回後,實際的渲染操作纔會發生。如果該方法需要5秒才能完成,那麼5秒內不會出現屏幕渲染。 –