Android。为 locationListener 使用服务或应用程序 class
Android. Use service or application class for locationListener
我的任务是确定用户位置。我可以在 Application class 中创建 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);
我需要用什么来完成这个任务?服务或应用程序 class?该服务的优点和缺点是什么?应用的优缺点是什么class?
您永远不会使用该应用程序。您可能会使用 Activity。使用Activity比较方便,但是不能坚持到下一个activity。服务需要额外的样板文件并且不太容易访问数据,但它可以用于需要数据的多个活动。
如果您的应用需要获取实时位置信息,两者都可以使用。
MyApplication extends Application implements locationListener
MyService extends Service implements locationListener
因为应用的生命周期是最长的,所以可以在service.You中使用应用只需要关心如何将获取的数据传递给Activity(接口,broadcast. ..).
我的任务是确定用户位置。我可以在 Application class 中创建 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);
我需要用什么来完成这个任务?服务或应用程序 class?该服务的优点和缺点是什么?应用的优缺点是什么class?
您永远不会使用该应用程序。您可能会使用 Activity。使用Activity比较方便,但是不能坚持到下一个activity。服务需要额外的样板文件并且不太容易访问数据,但它可以用于需要数据的多个活动。
如果您的应用需要获取实时位置信息,两者都可以使用。
MyApplication extends Application implements locationListener
MyService extends Service implements locationListener
因为应用的生命周期是最长的,所以可以在service.You中使用应用只需要关心如何将获取的数据传递给Activity(接口,broadcast. ..).