Commit 64054b0d authored by vmocelin's avatar vmocelin
Browse files

Adicionado controle de pausa (segundo plano)

Criei uma variável pausado que indica se o aplicativo está em primeiro (false) ou em segundo plano (true).
Além disso, no onLocationChanged, fiz um loop que enquanto não obter uma nova localização (location == null) continua tentando pegar os dados.
Quando o aplicativo for para segundo plano, sai do loop para não ficar processando e consumindo recurso do celular.
parent ec4104a7
......@@ -41,12 +41,16 @@ public class MainActivity extends ActionBarActivity implements LocationListener
private TextView longitudeText;
private TextView altitudeText;
private String provider;
private boolean pausado;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//não está pausado (em segundo plano)
pausado = false;
//Pegamos a referência as TextViews que vamos modificar
latitudeText = (TextView) findViewById(R.id.latitude_label);
longitudeText = (TextView) findViewById(R.id.longitude_label);
......@@ -102,6 +106,9 @@ public class MainActivity extends ActionBarActivity implements LocationListener
protected void onResume() {
super.onResume();
locationManager.requestLocationUpdates(provider, 400, 1, this);
//não está pausado (em segundo plano)
pausado = false;
}
/* Remove the locationlistener updates when Activity is paused */
......@@ -109,13 +116,22 @@ public class MainActivity extends ActionBarActivity implements LocationListener
protected void onPause() {
super.onPause();
locationManager.removeUpdates(this);
//foi pausado (está em segundo plano)
pausado = true;
}
@Override
public void onLocationChanged(Location location) {
float lat = (float) (location.getLatitude());
float lng = (float) (location.getLongitude());
float alt = (float) (location.getAltitude());
float lat;
float lng;
float alt;
do {
lat = (float) (location.getLatitude());
lng = (float) (location.getLongitude());
alt = (float) (location.getAltitude());
}while(!pausado && location == null); //Só atualiza os textos se não estiver pausado e o location tiver uma posição
latitudeText.setText("Latitude: " + String.valueOf(lat));
longitudeText.setText("Longitude: " + String.valueOf(lng));
altitudeText.setText("Altitude: " + String.valueOf(alt));
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment