我正在开发一个包含一些活动的Android应用程序。
我想从GPS(onLocationChanged
,onProviderDisabled
,onProviderEnabled
,onStatusChanged
)获取更新,无论用户当前正在使用哪种活动。
为了获得这样的行为,我应该在哪里实施LocationListener
?
这是我创建的课程:
public class MyLocationListener implements LocationListener{
private LocationManager locationManager;
private String provider;
@Override
public void onLocationChanged(Location locationGPS) {
//do something
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
Log.i("===========================", "==============================");
Log.i("onProviderEnabled", "==============================");
Log.i("===========================", "==============================");
}
@Override
public void onProviderDisabled(String provider) {
Log.i("===========================", "==============================");
Log.i("onProviderDisabled", "==============================");
Log.i("===========================", "==============================");
}
答案 0 :(得分:4)
在您要启动gps的活动上启动位置监听器。要启动GPS,您可以使用
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener locationListener = new CTLocationListener();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 1.0f, locationListener);
并停止GPS,你可以使用
locationManager.removeUpdates(locationListener);
最好在onCreate()
/ onStart()
上写下GPS启动,并在服务的onDestroy()
上删除GPS并使用该服务。否则,一旦停止GPS,某些设备再次启动GPS的可能性就会低于50%。
答案 1 :(得分:1)
在那里创建Service
并监控位置,或者您可以在单独的班级中实施LocationListener
并在每个Activity
中使用它,将其打开onResume()
并关闭onPause()