A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 段郎 中级黑马   /  2014-3-28 10:55  /  772 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

主线程想得到子线程里面的执行结果,但是子线程又是在主线程执行后执行的,所以造成空指针异常,请问怎么处理?ShowAddress类
  1. public class ShowAddress {
  2.         private MKSearch mKSearch;
  3.         public static String <b>address</b>;
  4.        
  5.         //根据经纬度返回地址
  6.            public  void showAddress(GeoPoint point){
  7.                mKSearch=new MKSearch();
  8.                mKSearch.init(HiTaxiApplication.mBMapManager, new SearchListener());
  9.                mKSearch.reverseGeocode(point);
  10.                 }
  11.            class SearchListener implements MKSearchListener{//我查了一下,这个类是异步线程,我发现他总是在主线程执行完以后再执行
  12.                    @Override
  13.                         public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {
  14.                                 // TODO Auto-generated method stub
  15.                                
  16.                         }
  17.                        
  18.                         @Override
  19.                         public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {
  20.                                 // TODO Auto-generated method stub
  21.                                
  22.                         }
  23.                        
  24.                         @Override
  25.                         public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {
  26.                                 // TODO Auto-generated method stub
  27.                                
  28.                         }
  29.                        
  30.                         @Override
  31.                         public void onGetShareUrlResult(MKShareUrlResult arg0, int arg1, int arg2) {
  32.                                 // TODO Auto-generated method stub
  33.                                
  34.                         }
  35.                        
  36.                         @Override
  37.                         public void onGetPoiResult(MKPoiResult arg0, int arg1, int arg2) {
  38.                                 // TODO Auto-generated method stub
  39.                                
  40.                         }
  41.                        
  42.                         @Override
  43.                         public void onGetPoiDetailSearchResult(int arg0, int arg1) {
  44.                                 // TODO Auto-generated method stub
  45.                                
  46.                         }
  47.                        
  48.                         @Override
  49.                         public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {
  50.                                 // TODO Auto-generated method stub
  51.                                
  52.                         }
  53.                        
  54.                         @Override
  55.                         public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
  56.                                 // TODO Auto-generated method stub
  57.                                
  58.                         }
  59.                        
  60.                         @Override
  61.                         public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
  62.                                 // TODO Auto-generated method stub
  63.                                 System.out.println("onGetAddrResult....."+arg1);
  64.                                 ShowAddress.<b>address</b>=arg0.strAddr;
  65.                                 System.out.println(ShowAddress.address);
  66.                         }
  67.            }
  68. }
复制代码
主线程中调用showAddress ()方法,以得到地址信息
  1. int cLat = (int)(112.938247*1e6) ;
  2.         int cLon = (int)(28.229519*1e6) ;
  3.         GeoPoint p=new GeoPoint(cLon, cLat) ;
  4.         new ShowAddress().showAddress(p);//执行根据经纬度返回地址的方法
  5.                
  6.                 if(address!=null){
  7.                         System.out.println(address+"---------");
  8.                 }
复制代码




评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马