Ho un' applicazione in cui se scrivo nel metodo Oncreate questo: tutto funziona:
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); // 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); . . .
E setto dopo la mappa. Come andrebbe scritto il tutto se volessi prima controllare la presenza della connessione rete, e poi avviare la mappa?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(); }
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?

LinkBack URL
About LinkBacks
Rispondi quotando