android 调用百度sdk后运行不了,解决android程序中oncreate方法中调用百度地图MKSearchListener接口不执行的问题...
因为工作的需要,我在做软件的时候用到地图,并且需要从地图中搜索公交、商户等信息,因此选择百度地图。百度地图搜索的poi搜索正好符合我的需求,但是软件完成后发现在软件第一次执行的时候总是出错,百度地图无法返回搜索数据。
经过调试发现百度地图搜索的回调函数未执行,从网上搜索也没有找到结果。
最后试了几种方法总算给做出了了。
首先讲下百度地图的执行吧。
我们的Activity需要继承百度的MapActivity,
在oncreate中初始化。
mapMgr = new BMapManager(this.getApplication()); //新建一个地图管理器
mapMgr.init("百度地图mapkey", null);
super.initMapActivity(mapMgr);
//获取mapView
mv = (MapView) this.findViewById(R.id.bmapsView);
mapCtrl = mv.getController(); //取得mapView的控制
GeoPoint point = new GeoPoint((int)(31.760765*1E6), (int)(117.257397*1E6));
mapCtrl.setCenter(point); //设置地图显示中心点
mapCtrl.setZoom(16); //设置放大等级
然后的直接在百度地图中使用mksearch,我的是失败了。
我便新开了一个线程,在线程中等待一秒钟之后才开始执行百度地图的搜索。感觉可能是因为activity刚开始启动的时候,百度地图的那个方法没有能够运行,所以等待一秒再让其运行。
new Thread(new Runnable() {
@Override
public void run() {
mkSearch = new MKSearch();
MKSearchListener searchListener = new MKSearchListener() {
@Override
public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {
}
@Override
public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetRGCShareUrlResult(String arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetPoiResult(MKPoiResult res, int type, int iError) {
Log.i("maa","调用我吧");
poiInfos = res.getAllPoi();
if(res != null){
jiaotonglist = new ArrayList();
for(int i = 0;i
MKPoiInfo poi = poiInfos.get(i);
String s = poi.name+":"+poi.address;
GeoPoint pt = poi.pt;
int size = s.length();
int x = (int)size/16;
String s1 = "";
String s2 = "";
if(x>0){
for(int j= 0;j
s1 = s.substring(j*16, (j+1)*16);
s2 = s2+s1+"\n";
}
s2 = s2 +s.substring(x*16);
s = s2;
}
Jiaotong jt = new Jiaotong(sxarray[i],s,R.drawable.suolue,pt);
jiaotonglist.add(jt);
}
handler.sendEmptyMessage(1);
//lv.requestFocus();
//lv.requestFocus( View.FOCUS_DOWN);
//刷新地图
Log.i("maa","成功加载:"+searchType);
}
Log.i("maa","已经加载:"+searchType);
}
@Override
public void onGetPoiDetailSearchResult(int arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
// TODO Auto-generated method stub
}
};
mkSearch.init(mapMgr, searchListener);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
GeoPoint p = new GeoPoint((int)(31.760765*1E6), (int)(117.257397*1E6));
mkSearch.poiSearchNearBy("公交车站", p, 5000);
}
}).start();
然后使用hanlder接收消息,将返回的数据写到界面里面就行了。
我的代码直接是不能运行的,主要跟大家说一下我的思路。
如果你有更好的方法,欢迎交流。
android 调用百度sdk后运行不了,解决android程序中oncreate方法中调用百度地图MKSearchListener接口不执行的问题...相关推荐
- Spring - 同一个类中的方法互相调用,注解失效问题的分析和解决(转)
Spring - 同一个类中的方法互相调用,注解失效问题的分析和解决(转) 参考文章: (1)Spring - 同一个类中的方法互相调用,注解失效问题的分析和解决(转) (2)https://www. ...
- 【BUG记录】在onCreate()方法handler调用方法导致程序闪退
情景:我的代码里是在onCreate()方法中new Handler(),然后将创建的Handler对象调用方法发送消息,结果程序就闪退了 原因:在界面还没有被渲染完成的时候,是不能使用handler ...
- Android 在onCreate()方法中获取控件宽高值为0解决方案
大家很多时候需要在Activity或者Fragment的onCreate()方法中获取声明的空间的高度或者宽度,进行位置移动或者其他操作,但是当调用 view.getHeight() 或者 view. ...
- android中oncreate方法,Android textView 中 onCreate 方法的改变
我在main.xml上使用 Layout Editor创建了一个textview名称是textView1. 我想使用一个自定义的字体,所以我在onCreate方法中创建了下面的代码,但是好像不能识别t ...
- 导入idea中运行项目 如何解决各种程序包不存在的问题
导入idea中运行项目 如何解决各种程序包不存在的问题 缺少包--去官网下载! 缺少包----去官网下载! 缺少包------去官网下载! 可是!!! 为什么总有下不完的包??? 因为小编一直运行用e ...
- android 百度定位开启后fragment 不显示,解决Android百度地图MapView在ViewPager中Fragment切换黑屏问题...
百度地图切换界面出现黑屏原因是地图退出释放内存时渲染出现bug导致.因为是百度地图本身内部bug.所以我们无法从本质上去修复这个bug android:id="@ id/dynamics_m ...
- Android学习笔记---开发与运行(卸载)第一个ANDROID应用--Helloworld
开发与运行(卸载)第一个ANDROID应用 1.第一个android程序:HelloWorld 新建:android Project 填写project name,选择安卓平台 2.a.app ...
- android5.1和ios差距,Android 5.1和IOS运行流畅度比较Android获胜!
实践是检验真相的唯一标准,它一直是发布它的人们的教育,所以我一直认为Android不会比ios更加流畅,但是由于我吃了苹果,所以我有了改变了我以前的看法. 它是ip6p,系统是ios8.4,比较And ...
- python封装成exe后运行失败_解决Python使用pyinstaller打包生成exe运行提示错误 | kTWO-个人博客...
最近用python写了个小的桌面程序,在本机上调试的时候,一点问题都没有,在生成exe后也可以正常打开,但是我发给舍友用的时候却突然出现的错误,运行后提示Failed to execute scrip ...
最新文章
- 五位工程师亲述:AI技术人才如何快速成长?
- Hack Knowledges
- 4k视频写入速度要求_为什么视频工作者需要外置硬盘?
- connectionString加密
- linux-用户-进程-文件的关系
- 灰度拉伸python_灰度变换之灰度线性拉伸(算法1)
- tornado 重定向404
- python滑动手机屏幕_appium+python自动化24-滑动方法封装(swipe)
- 解析恶意软件***技术特点
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_11、SpringBoot2.x目录文件结构讲解...
- 算法精解 c语言描述 pdf,【2020新书】C语言算法导论,Introducing Algorithms in C,174页pdf...
- 微信支付接口 java服务器,JAVA微信支付接口开发——支付(示例代码)
- 微信小程序点播音频服务器,微信小程序无法播放本地音频
- laravel框架中hasOne和blongTo的用法详解
- 显示器ntsc测试软件,显示器色域检测图拉丁版
- 【车间调度】基于遗传算法求解车间调度matlab源码
- ios无痕埋点_无痕埋点方案探究
- 视频播放库Vitamio的使用以及功能扩展
- 网页版微信自动群发消息
- java split 字符串作为分隔符_Java 字符串分隔 split
热门文章
- C语言-附加-给一个数求最大质数(完整代码)
- PAT乙级(1037 在霍格沃茨找零钱 )
- java 2 图形设计卷i awt_java 2 图形设计卷i:awt
- 生产电池要什么计算机技术,锂离子电池生产的几个关键工序讲解
- MySQL 5.7 update误操作后数据恢复详解
- 这个火热的社区都升级到2.0了,你还不知道它?
- 华为AppCube入选Forrester《中国低代码平台市场分析报告》
- 【鲲鹏来了】华为云鲲鹏弹性云服务器 KC1一文全掌握(4)
- 【华为云技术分享】《跟唐老师学习云网络》— iptables - filter过滤功能
- 利用CloudIDE当做简单linux环境,执行简单python工程任务