我有一项确定用户位置的任务。我可以在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);
我需要为此任务使用什么?服务或应用类?这项服务有哪些优点和缺点?应用程序类有哪些优点和缺点?
答案 0 :(得分:0)
您永远不会使用该应用程序。您可以使用该活动。使用Activity更方便,但不能坚持到下一个活动。服务需要额外的样板,并且不太容易访问数据,但它可以用于需要数据的多个活动。
答案 1 :(得分:0)
如果您的应用程序需要获取实时位置信息,则可以使用它们。
MyApplication extends Application implements locationListener
MyService extends Service implements locationListener
因为应用程序的生命周期最长,所以您可以在服务中使用该应用程序。您只需关心如何将获取的数据传递给Activity(接口,广播......)。