黑马程序员技术交流社区
标题:
android 线程问题
[打印本页]
作者:
段郎
时间:
2014-3-28 10:55
标题:
android 线程问题
主线程想得到子线程里面的执行结果,但是子线程又是在主线程执行后执行的,所以造成空指针异常,请问怎么处理?ShowAddress类
public class ShowAddress {
private MKSearch mKSearch;
public static String <b>address</b>;
//根据经纬度返回地址
public void showAddress(GeoPoint point){
mKSearch=new MKSearch();
mKSearch.init(HiTaxiApplication.mBMapManager, new SearchListener());
mKSearch.reverseGeocode(point);
}
class SearchListener implements MKSearchListener{//我查了一下,这个类是异步线程,我发现他总是在主线程执行完以后再执行
@Override
public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@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 onGetShareUrlResult(MKShareUrlResult arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
}
@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
System.out.println("onGetAddrResult....."+arg1);
ShowAddress.<b>address</b>=arg0.strAddr;
System.out.println(ShowAddress.address);
}
}
}
复制代码
主线程中调用
showAddress
()方法,以得到地址信息
int cLat = (int)(112.938247*1e6) ;
int cLon = (int)(28.229519*1e6) ;
GeoPoint p=new GeoPoint(cLon, cLat) ;
new ShowAddress().showAddress(p);//执行根据经纬度返回地址的方法
if(address!=null){
System.out.println(address+"---------");
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2