使用Android GPS的盆友,想必对GetLastKnownLocation一定不陌生吧,这个空指针错误应该或多或少的会折磨折磨初来的人。网上有许多的解决办法,最多的就是那个从国外论坛上学来的方法。mgr.requestLocationUpdates("gps", 60000, 1, locationListener); 大概就是这个意思啦,大家可以网上搜一下,我就不重复了,或许是因为我太菜了,居然没成功,但是通过自己的思考,自己设计了一种处理这个空指针错误的方法,权是抛砖引玉,呵呵。

GPS的两个问题:1:GetLastKnownLocation返回null2:requestLocationUpdates出现FC。

解决办法:

  1. 对于第一个问题。maploc=mapSer.getLastKnownLocation(provider);如果maploc返回null,那么随后updateWithNewLocation(maploc);如果不对maploc进行处理肯定是会出错的,处理很简单:if(location==null)  return;也可以加上一句toast。
  2. 第二个问题是这样的。如果mapSer.requestLocationUpdates(provider,5000,5,locationListener);持续向provider监听,而provider无法返回位置的话。那么如果不加任何处理,长时间无法获取位置,就会出现FC问题。这个时间大概是30秒左右?怎么解决呢,我是采用java的计时器来解决的。通过计时器设定搜寻时间,控制搜寻时间小于会出现FC错误的时间。当搜寻时间超过设定后,触发计时任务,即取消监听。那么就不会触发FC啦。需要注意的是计时器需要运行在其他线程,用handler就可以啦,具体代码如下:
//第一次打开程序,需要重新定位。    if(first){toast(2);//计时器来控制定位时间,阈值为10秒。mytimer.schedule(new TimerTask(){public void run(){Message message = new Message();      message.what = 1;      handler.sendMessage(message);}},10*1000);  }

hundler代码如下:

final Handler handler = new Handler(){  public void handleMessage(Message msg) {  switch (msg.what) {      case 1:      toast(3);break;      }      super.handleMessage(msg);  }    };

toast代码如下:

 private void toast(int i){switch(i){case 1://或许无效Toast.makeText(this, "暂时无法更新位置,请稍候", Toast.LENGTH_SHORT).show();return;case 2://手机重启后或者第一次使用Toast.makeText(this, "正在定位,请稍候", Toast.LENGTH_SHORT).show();return;case 3://无法定位Toast.makeText(this, "无法定位,请稍候重试", Toast.LENGTH_SHORT).show();mapSer.removeUpdates(locationListener);return;}}

写的不是很清楚,如果需要源码的话可以联系我,有问题大家也可以一起讨论。O(∩_∩)O~

转载于:https://www.cnblogs.com/AntiLosT-T/archive/2011/08/02/2125479.html

也议GetLastKnownLocation!!(独家理解)相关推荐

  1. JAVA 开发规范标准(集合)

    JAVA 开发规范 一.编程规约 (一)命名规约 1. [强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符 号结束. 反例:_name / __name / $Object / ...

  2. 布局元宇宙,探索新未来——WEB3.0·重庆站圆满落幕

    2023年3月25日,由CyberDao市场发展部主导的"WEB3.0·元宇宙峰会-重庆站"在重庆圆满落幕. 本次峰会以"布局元宇宙,探索新未来"为主题,围绕C ...

  3. 超40所大学公布暑假、秋季开学时间:最短20天,有的增设暑假小学期

    转载于 软科 近日,同学们最为关心的暑假时间.秋季学期开学时间又有了新消息,北京.四川.湖南.湖北.浙江.江苏等多地,又有一批高校陆续发布2020年暑期安排和秋季学期开学等有关事项通知.快来看这里有你 ...

  4. 环球企业家杂志:解密SAP进入电力市场幕后故事

    "其实我们卖的就是光盘.为什么大桥底下卖盗版盘的只要5块钱,而SAP的光盘就可以卖几个亿?"尹世明笑着问.作为SAP中国副总裁,这个个头不高,看上去颇是温和的人此刻显得有些调皮. ...

  5. 独家 | Transformer的可视化理解——深入本质探索其优良表现的原因(附链接)...

    作者:Ketan Doshi 翻译:欧阳锦校对:和中华本文约3800字,建议阅读10分钟本文通过可视化的方式清晰地展示了Transformer的工作本质,并从本质中探索了它具有优良表现的原因. 关键字 ...

  6. 独家 | 解析Tansformer模型—理解GPT-3, BERT和T5背后的模型(附链接)

    作者:Dale Markowitz 翻译:王可汗 校对:和中华 本文约3800字,建议阅读5分钟 本文为大家介绍自然语言处理中当下最流行的语言模型--Transformer模型. 标签:自然语言处理 ...

  7. 独家 | 混乱的句子表明AI仍然不能真正理解语言

    作者:Will Douglas Heaven 翻译:王可汗 校对:和中华 本文约1200字,建议阅读8分钟 最新的研究结果表示,自然语言处理尽管在GLUE上取得好成绩,但仍然无法达到真正理解自然语言. ...

  8. 独家 | 如何在BigQueryML中使用K-均值聚类来更好地理解和描述数据(附代码)

    原文:拉克什曼Lak Lakshmanan 翻译:陈之炎 校对:吴金笛 本文约2600字,建议阅读10+分钟. 本文教你如何在BigQueryML中使用K均值聚类对数据进行分组,进而更好地理解和描述. ...

  9. 独家 | 建立软件的经济学分析框架,浅议开源软件的经济学特性(附图解)

    人类社会正在加速数字化.一个显而易见的事实是,人们生活.工作的方方面面都离不开各种各样的软件.不久以前,人们还不知道什么是软件:从今往后,软件正在吞噬整个世界[https://a16z.com/201 ...

最新文章

  1. 当中国数据中心建设提速,能耗问题引关注
  2. HandlerThread
  3. 手写一个合格的前端脚手架
  4. 图深度学习-第2部分
  5. MySQL数据库对dvbbs.php全文搜索的完全分析
  6. Linux下记住Gitee账户密码
  7. mycat集群执行带有join的sql语句时报错_can‘t find table define in schema_分片join---Linux运维工作笔记052
  8. ccd相机好修吗_CCD到底值不值得买,CCD相机入坑全过程
  9. php 中文字符串长度_php中计算中文字符串长度、截取中文字符串的函数代码
  10. 三角脉冲信号的表达式_脉冲发生器产生一个单三角脉冲,其波形如图所示,例1写出电压U 与.pdf...
  11. android 照片拼接长图_手机照片拼接长图软件|照片拼接长图app下载v2.0-乐游网软件下载...
  12. php完美导出word,php导出生成word的方法
  13. GYM 2015 ACM Syrian Collegiate Programming Contest
  14. NANK南卡A2主动降噪耳机测评:长续航40dB深度降噪
  15. Android获取音乐专辑封面图
  16. 半加器——Verilog HDL语言
  17. [GitHub][2014-05-11 18:34:13]eqq-python
  18. 基于视频分类的打架识别
  19. 【Vue】Vue浅析
  20. 代码的同源性检测:基于c语言实现的对代码的同源性检测 详细教程

热门文章

  1. Spring Boot 异步请求和异步调用,一文搞定!
  2. 深大教授开源的人脸检测库,速度号称史上最快
  3. 数据科学家最需要什么技能?
  4. consul 命令行参数
  5. 总结:ps aux指令
  6. 【Python】青少年蓝桥杯_每日一题_9.27_输出最大值最小值平均值
  7. java 压缩多个文件_java实现一次性压缩多个文件到zip中的方法示例
  8. 如何去除小数点后面多余的0_704密封胶如何使用?怎么样去除多余的704密封胶?...
  9. 如何正确使用穿线管 穿线管布局解析
  10. 数据中心用多模光纤技术及发展趋势