android中使用百度定位sdk实时的计算移动距离,面试阿里P7岗

前言

回顾一下自己这段时间的经历,因公司突然通知裁员,我匆匆忙忙地出去面了几家,但最终都没有拿到offer,我感觉今年的寒冬有点冷。公司开始第二波裁员,我决定主动拿赔偿走人。后续的面试过程我做了一些准备,基本都能走到hr面,后面我也顺利地拿到了offer,我给大家分享下我的求职体会,希望能给大家一些参考。

  1. import java.util.concurrent.Executors;

  2. import android.app.Service;

  3. import android.content.Intent;

  4. import android.os.IBinder;

  5. import app.db.DistanceInfoDao;

  6. import app.model.GpsLocation;

  7. import app.model.DistanceInfo;

  8. import app.ui.MyApplication;

  9. import app.utils.BDLocation2GpsUtil;

  10. import app.utils.FileUtils;

  11. import app.utils.LogUtil;

  12. import com.baidu.location.BDLocation;

  13. import com.baidu.location.BDLocationListener;

  14. import com.baidu.location.LocationClient;

  15. import com.baidu.location.LocationClientOption;

  16. import com.computedistance.DistanceComputeInterface;

  17. import com.computedistance.impl.DistanceComputeImpl;

  18. public class LocationService extends Service {

  19. public static final String FILE_NAME = “log.txt”;                       //日志

  20. LocationClient mLocClient;

  21. private Object lock = new Object();

  22. private volatile GpsLocation prevGpsLocation = new GpsLocation();       //定位数据

  23. private volatile GpsLocation currentGpsLocation = new GpsLocation();

  24. private MyLocationListenner myListener = new MyLocationListenner();

  25. private volatile int discard = 1;   //Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。

  26. private DistanceInfoDao mDistanceInfoDao;

  27. private ExecutorService executor = Executors.newSingleThreadExecutor();

  28. @Override

  29. public IBinder onBind(Intent intent) {

  30. return null;

  31. }

  32. @Override

  33. public void onCreate() {

  34. super.onCreate();

  35. mDistanceInfoDao = new DistanceInfoDao(this);   //初始化数据库

  36. //LogUtil.info(LocationService.class, “Thread id ----------->:” + Thread.currentThread().getId());

  37. mLocClient = new LocationClient(this);

  38. mLocClient.registerLocationListener(myListener);

  39. //定位参数设置

  40. LocationClientOption option = new LocationClientOption();

  41. option.setCoorType(“bd09ll”); //返回的定位结果是百度经纬度,默认值gcj02

  42. option.setAddrType(“all”);    //返回的定位结果包含地址信息

  43. option.setScanSpan(5000);     //设置发起定位请求的间隔时间为5000ms

  44. option.disableCache(true);    //禁止启用缓存定位

  45. option.setProdName(“app.ui.activity”);

  46. option.setOpenGps(true);

  47. option.setPriority(LocationClientOption.GpsFirst);  //设置GPS优先

  48. mLocClient.setLocOption(option);

  49. mLocClient.start();

  50. mLocClient.requestLocation();

  51. }

  52. @Override

  53. @Deprecated

  54. public void onStart(Intent intent, int startId) {

  55. super.onStart(intent, startId);

  56. }

  57. @Override

  58. public void onDestroy() {

  59. super.onDestroy();

  60. if (null 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值