Android系统。使用locationListener的服务或应用程序类

时间:2015-03-16 22:09:09

标签: android service location

我有一项确定用户位置的任务。我可以在Application类中创建LocationListener。或者我可以使用服务。

LocationManager locationManager=(LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
  LocationListener locationListener=new LocationListener(){
public void onLocationChanged(    Location location){
  dive.setLongitude(location.getLongitude());
  dive.setLatitude(location.getLatitude());
  mapHelper.setMapPosition(dive.getLatitude(),dive.getLongitude());
}
public void onStatusChanged(    String provider,    int status,    Bundle extras){
}
public void onProviderEnabled(    String provider){
}
public void onProviderDisabled(    String provider){
}};
 locationManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER,0,0,locationListener);
 locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER,0,0,locationListener);

我需要为此任务使用什么?服务或应用类?这项服务有哪些优点和缺点?应用程序类有哪些优点和缺点?

2 个答案:

答案 0 :(得分:0)

您永远不会使用该应用程序。您可以使用该活动。使用Activity更方便,但不能坚持到下一个活动。服务需要额外的样板,并且不太容易访问数据,但它可以用于需要数据的多个活动。

答案 1 :(得分:0)

如果您的应用程序需要获取实时位置信息,则可以使用它们。

MyApplication extends Application implements locationListener
MyService extends Service implements locationListener

因为应用程序的生命周期最长,所以您可以在服务中使用该应用程序。您只需关心如何将获取的数据传递给Activity(接口,广播......)。