使用google map+模拟器发送地理位置信息时遇到的奇怪有关问题

使用google map+模拟器发送地理位置信息时遇到的奇怪问题
写了一个谷歌地图的小程序,通过模拟器发送地理位置信息,如果地理位置有更新,把更新的GEOPOINT加入到一个list里面,
Java code
 
public final LocationListener mLocationListener = 
      new LocationListener() 
    { 
      @Override 
      public void onLocationChanged(Location location) 
      { 
          
          gp2=getGeoByLocation(location);//gp2是最新的更新点
          pointsList.add(gp2);
          
          Log.e("the gp2 is ", gp2.getLatitudeE6()+"||"+gp2.getLongitudeE6()+"||"+pointsList.size());  
      } 


问题1:当我把这个程序关掉时,在Emulator Control发送新的位置信息时,在LogCat还能看到gp2.getLatitudeE6()+"||"+gp2.getLongitudeE6()+"||"+pointsList.size()+"||"+"testValue="+testValue); 这条打印信息,这是为什么?
问题2:当我程序关掉时发送新的位置信息后,再打开该程序,再发送新的位置信息,Log里面一次打印出两条log,比如说,我在关掉程序后,发送了2条新的位置信息,此时打印出来的是03-28 03:53:46.259: E/the gp2 is(815): 22001598||113972458||2,也就是说此时pointsList里面有两个GeoPoint,这个时候,我再把程序启动,再发送位置信息,打印出来的是03-28 04:10:16.888: E/the gp2 is(815): 22001898||113972458||5
03-28 04:10:16.898: E/the gp2 is(815): 22001898||113972458||2
这两条同时打印出来,
找不到头绪,到底怎么回事呢?



------解决方案--------------------
调用void

removeUpdates(LocationListener listener)了么?

------解决方案--------------------
汗,就像你写一个Service,如果不关掉这个服务,那这个服务是不是同样在运行呢!