【发布时间】:2011-10-24 20:42:44
【问题描述】:
我正在使用 MKMapView,并使用 CLLocationManager 在最后一个已知位置启动地图,问题是 iPhone 和位置服务报告说我在完成后仍在使用这些服务,这引起了一些对电池的担忧用法。
所以,请帮我正确地发布这个。
CLLocationManager * MANG = [[CLLocationManager alloc] init];
[MANG startMonitoringSignificantLocationChanges];
if(MANG.location){
[mapa setCenterCoordinate:MANG.location.coordinate animated:NO];
}
[MANG stopMonitoringSignificantLocationChanges];
[MANG stopUpdatingLocation];
[MANG release];
【问题讨论】:
-
两件事... 1) 你确定你还在使用定位服务吗?通常,一旦您收到通知您有一个位置或您正在寻找的更改,您就会在其中一个委托方法中调用 stop。现在,您在开始和停止之间等待的时间不够长。 2)您是否在代码中的任何位置调用 [map setShowsUserLocation:YES] 或 map.showsUserLocation = YES?如果是这样,这将继续启用位置服务,直到您将值设置为 no。
-
我只需要检索最新的已知位置(不在乎是否是新位置)以在那时初始化地图,这就是我以这种方式使用它的原因。在那之后,是的,我正在使用地图。显示UserLocation,但当我不再使用它时将其设置为NO。
-
您是否为您的地图视图检查了显示我的位置?这将取代任何显示您正在跟踪位置的位置管理器的调用。
标签: iphone objective-c cllocationmanager