也议GetLastKnownLocation!!(独家理解)
使用Android GPS的盆友,想必对GetLastKnownLocation一定不陌生吧,这个空指针错误应该或多或少的会折磨折磨初来的人。网上有许多的解决办法,最多的就是那个从国外论坛上学来的方法。mgr.requestLocationUpdates("gps", 60000, 1, locationListener); 大概就是这个意思啦,大家可以网上搜一下,我就不重复了,或许是因为我太菜了,居然没成功,但是通过自己的思考,自己设计了一种处理这个空指针错误的方法,权是抛砖引玉,呵呵。
GPS的两个问题:1:GetLastKnownLocation返回null2:requestLocationUpdates出现FC。
解决办法:
- 对于第一个问题。maploc=mapSer.getLastKnownLocation(provider);如果maploc返回null,那么随后updateWithNewLocation(maploc);如果不对maploc进行处理肯定是会出错的,处理很简单:if(location==null) return;也可以加上一句toast。
- 第二个问题是这样的。如果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!!(独家理解)相关推荐
- JAVA 开发规范标准(集合)
JAVA 开发规范 一.编程规约 (一)命名规约 1. [强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符 号结束. 反例:_name / __name / $Object / ...
- 布局元宇宙,探索新未来——WEB3.0·重庆站圆满落幕
2023年3月25日,由CyberDao市场发展部主导的"WEB3.0·元宇宙峰会-重庆站"在重庆圆满落幕. 本次峰会以"布局元宇宙,探索新未来"为主题,围绕C ...
- 超40所大学公布暑假、秋季开学时间:最短20天,有的增设暑假小学期
转载于 软科 近日,同学们最为关心的暑假时间.秋季学期开学时间又有了新消息,北京.四川.湖南.湖北.浙江.江苏等多地,又有一批高校陆续发布2020年暑期安排和秋季学期开学等有关事项通知.快来看这里有你 ...
- 环球企业家杂志:解密SAP进入电力市场幕后故事
"其实我们卖的就是光盘.为什么大桥底下卖盗版盘的只要5块钱,而SAP的光盘就可以卖几个亿?"尹世明笑着问.作为SAP中国副总裁,这个个头不高,看上去颇是温和的人此刻显得有些调皮. ...
- 独家 | Transformer的可视化理解——深入本质探索其优良表现的原因(附链接)...
作者:Ketan Doshi 翻译:欧阳锦校对:和中华本文约3800字,建议阅读10分钟本文通过可视化的方式清晰地展示了Transformer的工作本质,并从本质中探索了它具有优良表现的原因. 关键字 ...
- 独家 | 解析Tansformer模型—理解GPT-3, BERT和T5背后的模型(附链接)
作者:Dale Markowitz 翻译:王可汗 校对:和中华 本文约3800字,建议阅读5分钟 本文为大家介绍自然语言处理中当下最流行的语言模型--Transformer模型. 标签:自然语言处理 ...
- 独家 | 混乱的句子表明AI仍然不能真正理解语言
作者:Will Douglas Heaven 翻译:王可汗 校对:和中华 本文约1200字,建议阅读8分钟 最新的研究结果表示,自然语言处理尽管在GLUE上取得好成绩,但仍然无法达到真正理解自然语言. ...
- 独家 | 如何在BigQueryML中使用K-均值聚类来更好地理解和描述数据(附代码)
原文:拉克什曼Lak Lakshmanan 翻译:陈之炎 校对:吴金笛 本文约2600字,建议阅读10+分钟. 本文教你如何在BigQueryML中使用K均值聚类对数据进行分组,进而更好地理解和描述. ...
- 独家 | 建立软件的经济学分析框架,浅议开源软件的经济学特性(附图解)
人类社会正在加速数字化.一个显而易见的事实是,人们生活.工作的方方面面都离不开各种各样的软件.不久以前,人们还不知道什么是软件:从今往后,软件正在吞噬整个世界[https://a16z.com/201 ...
最新文章
- ubuntu12.04升级php5.4至。。5.5
- recyclerview 滑动到当前_Android recyclerview的滑动到指定的item
- Linux用户态协议栈好处,关于用户态协议栈的思考
- 微信小程序-学习笔记6-组件
- 前段react技术架构图_基于 React 的可视化编辑平台实践
- boost::multiprecision模块将 std::numeric_limits 用作 multiprecision.qbk 上的多精度文档片段的示例
- dbref java_java – Spring Data REST MongoDB:检索DBRef的对...
- 安卓学习笔记24:常用控件 - 循环器视图
- 微信发送模版消息,PHP代码简单案例
- ssh (安全外壳协议)
- 使用linux批量引物设计,【分享】超实用的引物设计操作,一看就学会
- nodejs菜鸟教程
- 《Erlang/OTP并发编程实战》第八章 分布式 Erlang/OTP 简介
- 第五次网页前端培训笔记(javascript基础内容)
- YOLOX训练代码分析3-损失函数
- 内存报错:Cannot allocate memory
- java模拟超市商品库存管理平台
- linux忘记密码修改密码_如何更改我的Linux密码
- 关于opencv中cvtcolor函数的code参数用CV_BGR2YUV与CV_BGR2YCrCb的了解
- Linux系统下的hadoop常用命令