Я пытаюсь измерить, насколько я путешествую, когда нажата кнопка запуска, и прекратите измерение после нажатия кнопки остановки. Для этого (1) Я уже настроил диспетчер местоположений, место прослушивания и объект местоположения, и они уже работают хорошо, прежде чем я поставлю onClick Listener. (2) После того, как я установил onClickListener, GPS не обновляется регулярно. Кто-нибудь знает, как регулярно обновлять GPS после запуска события? Следующий мой код.Как регулярно обновлять Android-планшет на экране?
public class MeasureDistance extends Activity implements LocationListener {
TextView showData;
Button start;
Button stop;
double longitutde;
double previousLongitude;
Location previous;
Location current;
LocationListener myListener;
Location location;
Location previousLocation = null;
LocationManager locationManager;
static double meter = 0;
double distance = 0;
boolean startGPS = false;
double diff;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{ //This is for the UI
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
showData = (TextView)findViewById(R.id.showText);
start = (Button)findViewById(R.id.startButton);
stop = (Button)findViewById(R.id.stopButton);
start.setOnClickListener(onClickListener);
stop.setOnClickListener(onClickListener);
//This is for the Location
locationManager = (LocationManager)getSystemService(LOCATION_SERVICE);
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
locationManager.requestLocationUpdates(locationManager.GPS_PROVIDER,0,0,this);
}
public void onLocationChanged(Location location)
{
if((previousLocation != location) && (previousLocation != null) &&(startGPS == true))
{
distance = location.distanceTo(previousLocation);
meter = distance + meter;
}
previousLocation = location;
}
public void onStatusChanged(String provider, int status, Bundle extras) {
//To change body of implemented methods use File | Settings | File Templates.
}
public void onProviderEnabled(String provider) {
//To change body of implemented methods use File | Settings | File Templates.
}
public void onProviderDisabled(String provider) {
//To change body of implemented methods use File | Settings | File Templates.
}
public View.OnClickListener onClickListener = new View.OnClickListener()
{
public void onClick(final View v){
switch(v.getId())
{
case R.id.startButton:
{
startGPS = true;
showData.setText(Double.toString(meter * 3.28));
break;
}
case R.id.stopButton:
{
showData.setText("Stop Button is Click");
break;
}
}
}
//To change body of implemented methods use File | Settings | File Templates.
} ;
}
Непосредственно связано с вашей проблемой; но обычно вы должны включать GPS в onStart() или onResume() и отключать его в onPause() или onStop(). Включение его в onCreate() приведет к тому, что он будет работать все время, убивая батарею. –