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秒内不会出现屏幕渲染。 –