我知道有成千上万的问题。但我找不到我的解释。
我使用onLocationChanged方法更新mapView上用户的位置。一切安好;我在onCreate方法中显示一个ProgressDialog,并在OnlocationChanged结束时将其关闭并且它可以正常工作。
问题是当我在onLocationChanged方法中创建并显示进度对话框时。不知怎的,它不起作用。我认为这是因为该方法在不同的线程上运行。
但我的问题是,如果onLocationChanged方法在不同的线程上运行,为什么它让我解除对话但不创建新对话?
这是我班级的一部分:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tiendas);
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mapView.setSatellite(false);
ProgressDialog dialog = ProgressDialog.show(StoresActivity.this, "",
"Getting your location", true, true);
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
/////if i show or initialize the dialog here, doesn't work!
updateMap(location) // this function calls asynctask
// for an HTTPrequest
dialog.dismiss();
}
}
该代码正常工作并解除对话框,但如果我在onLocationChanged方法中声明或显示对话框,则它永远不会显示。任何人? 为什么它会解雇它但却无法显示它?
答案 0 :(得分:0)
在Context
中传递LocationListener
课程的ProgressDialog
。
答案 1 :(得分:-1)
检查此代码是否可以正常使用
public class LocationFinderActivity extends Activity实现LocationListener {
LocationManager locationManager = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_location_finder);
Log.i("inside","oncreate");
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0,this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_location_finder, menu);
return true;
}
@Override
public void onLocationChanged(Location location) {
Log.i("inside","onlocationchange");
ProgressDialog dialog = ProgressDialog.show(LocationFinderActivity.this, "",
"Getting your location", true, true);
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}