Je sais qu'il y a des milliers de questions comme celle-ci. Mais je ne peux pas trouver une explication à la mienne. J'utilise la méthode onLocationChanged pour mettre à jour l'emplacement de l'utilisateur sur mapView. Tout va bien; J'affiche un ProgressDialog dans la méthode onCreate et le rejette à la fin de OnlocationChanged et cela fonctionne.Afficher la boîte de dialogue de progression dans OnLocationChanged
Le problème est lorsque je crée et affiche une boîte de dialogue de progression dans la méthode onLocationChanged. D'une manière ou d'une autre cela ne fonctionne pas. Je pense que c'est parce que la méthode fonctionne sur un thread différent. Mais ma question est, si la méthode onLocationChanged s'exécute sur un thread différent, pourquoi est-ce que cela me permet de fermer la boîte de dialogue sans en créer une nouvelle?
est ici une partie de ma classe:
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();
}
}
qui fonctionne de code et renvoie la boîte de dialogue correctement, mais si je déclare ou montrer la boîte de dialogue à l'intérieur de la méthode OnLocationChanged, il affiche jamais. N'importe qui? Pourquoi le rejette-t-il mais ne peut pas le montrer?
pouvez-vous envoyer votre code –
y est, merci! –