2014-10-15 9 views
6

Sto sviluppando un'applicazione Android e utilizza GoogleMaps. Quindi, quando clicco su un pulsante, carico un recordPositionActivity che mostra le mappe di google. Quindi ho notato che la velocità di caricamento di questa attività è lenta. Esiste una modalità per aumentare la velocità di caricamento di questa attività?Come aumentare la velocità per caricare un'attività?

Questo è il mio codice:

  protected void onCreate(Bundle savedInstanceState) { 
      try{ 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.activity_recordposition); 
       locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); 
       Criteria criteria = new Criteria(); 
       criteria.setAccuracy(Criteria.ACCURACY_FINE); 
       provider = locationManager.getBestProvider(criteria, false); 
       locationManager.requestLocationUpdates(provider, 1000, 0, this); 
       settaMappa(); 
       if(myPosition==null){ 
        pDialog = ProgressDialog.show(this, "Attendere ...", "Localizzazione in corso ...", true); 
        pDialog.setCancelable(false); 
       } 
      }catch(Exception e){ 
       Log.e("Errore onCreate:",e.getMessage()); 
       Utility.generateNoteOnSD(fileName,e.getMessage()); 
      } 
     } 

     public void settaMappa(){ 
      mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map2)).getMap(); 
      mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN); 
      mMap.setMyLocationEnabled(true); 
     } 

Questo è activity_recordposition.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:map="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#000000" 
    android:orientation="vertical" 
    tools:context=".registraPosizioneActivity" 
    android:gravity="center"> 


    <fragment 
     android:name="com.google.android.gms.maps.SupportMapFragment" 
     android:id="@+id/map2" 
     android:layout_height="0dp" 
     android:layout_weight="10" 
     android:layout_width="match_parent" 
     class="com.google.android.gms.maps.SupportMapFragment" 
     /> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:orientation="horizontal" > 

     <Button 
     android:id="@+id/buttonR" 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="0.20" 
     android:layout_margin="20dp" 
     android:background="#0080c2" 
     android:textColor="#FFF" 
     android:textSize="20sp" 
     android:onClick="registraPunto" 
     android:text="@string/registraPunto" /> 

    <Button 
     android:id="@+id/buttonSava" 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="0.20" 
     android:layout_margin="20dp" 
     android:background="#0080c2" 
     android:textColor="#FFF" 
     android:textSize="20sp" 
     android:onClick="savaAreaTracciata" 
     android:text="@string/terminaRegistrazione" /> 
    </LinearLayout> 
+0

Avete in realtà controllato quanto dura l'attività per i principali metodi del ciclo di vita? –

+0

Ho un commento su tutto il codice sul metodo onCreate, ma la velocità per caricare la mia attività è bassa. – bircastri

risposta

0

A me sembra che tu stai facendo un sacco di elaborazione nel metodo onCreate. Prova a spostare alcuni di questi processi in un thread Async. Credo che aumenterà molto il tempo di caricamento.

Quindi,

  • Caricare fino l'attività, all'interno del onCreate iniziare un compito Async
  • filo Async non l'elaborazione richiesta dopo l'attività è caricato :)
+0

non c'è niente che sembra davvero che stia facendo molto, basta creare un gestore di posizione e ottenere la mappa. Questo non è niente – tyczj

+0

Hiya, Potrebbe non essere molto, ma ha impostato la precisione in modo che il dispositivo da cui sta provando stia impiegando un po 'per ottenere le coordinate GPS e quindi l'attività non sembra caricarsi molto velocemente. Se esegue l'attività e esegue l'elaborazione GPS in un altro thread (Async). L'attività verrà visualizzata quasi istantaneamente e il thread Async verrà eseguito in background :). Non è diventato più veloce, ma l'attività si carica più velocemente, che è ciò che voleva. – csdacac

+0

ottenere un blocco GPS non ha nulla a che fare con la velocità di caricamento di un'attività. un'attività può caricare senza mai ottenere un blocco GPS – tyczj

Problemi correlati