Ho un' applicazione in cui se scrivo nel metodo Oncreate questo: tutto funziona:
codice:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Mettiamo la View a tutto schermo
requestWindowFeature(Window.FEATURE_NO_TITLE);
// Visualizziamo la Map
setContentView(R.layout.main);
// Otteniamo il riferimento alla MapView
mapView = (MapView)findViewById(R.id.mapView);
// Otteniamo il riferimento al controller
mapController = mapView.getController();
Log.i(LOG_TAG, "MapController obtained!");
// Rendiamo la mappa cliccabile e quindi ne permettiamo
// il pan
mapView.setClickable(true);
mapView.setBuiltInZoomControls(true);
// Aggiungiamo l'overlay sulla mappa della nostra posizione
myLocationOverlay = new MyLocationOverlay(this, mapView);
List<Overlay> overlays = mapView.getOverlays();
overlays.add(myLocationOverlay);
myLocationOverlay.enableMyLocation();
// Otteniamo il riferimento al LocationManager
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
.
.
.
Se invece di inserire ciò che riguarda la mappa faccio dei controlli sulla presenza della connessione di rete(per cui è previsto l' uso di un toast) oppure sul GPS in cui uso un AlertDialog, resta la schermata nera e non si avvia l' activity, cioè se scrivo:
codice:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LocationProvider gpsProvider = locationManager.getProvider(LocationManager.GPS_PROVIDER);
if (gpsProvider == null) {
// GPS non disponibile
} else {
// GPS disponibile
}
// Verifichiamo se la rete è abilitata
if(!CheckIntConn()){
AlertDialog.Builder miaAlert = new AlertDialog.Builder(this);
miaAlert.setTitle("Errore di connessione");
miaAlert.setMessage("Abilitare il GPS prima di avviare l' applicazione.")
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
CustomControllerMapActivity.this.finish();
}
});
AlertDialog alert = miaAlert.create();
miaAlert.show();
}
//Verifichiamo se il GPS è abilitato
if(!locationManager.isProviderEnabled("gps")){
Toast.makeText(this, "GPS attualmente disabilitato. Abilitare per una maggiore precisione.", Toast.LENGTH_LONG).show();
}
E setto dopo la mappa. Come andrebbe scritto il tutto se volessi prima controllare la presenza della connessione rete, e poi avviare la mappa?
Non sono molto prativo con le activity, del resto mi pare di avere capito che nell' onCreate viene settata, ma non avviata, perchè però nel primo modo funziona?