更改distanceFilter
值对电池寿命有影响吗?如果是这样,这种效果是什么?为什么它会有任何效果?
问问题
1137 次
1 回答
6
distanceFilter 属性对电池寿命没有影响或影响极小。它所做的只是将对代表的调用限制为它移动的每 n 米。如果您希望使用 gps 来节省电池寿命,那么我建议您只打开 gps 并每隔 n 秒读取一次读数,然后再次将其关闭,直到下一次读数。我会使用计时器。如果您希望它也可以在后台运行,请执行以下步骤:
在您的应用程序 plist 文件中,将“应用程序注册位置更新”添加到所需的后台模式键。
在你的 applicationDidEnterBackground 方法中做这样的事情
UIBackgroundTaskIdentifier __block bgTask; UIApplication *application = [ UIApplication sharedApplication]; bgTask = [application beginBackgroundTaskWithExpirationHandler:^{ //Prevent from going inactive by starting location update [[ ApplicationContext sharedInstance].coreLocationController startUpdatingLocation ]; [application endBackgroundTask:bgTask]; bgTask = UIBackgroundTaskInvalid; }]; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ while (YES) { if ( [[UIApplication sharedApplication] applicationState] == UIApplicationStateActive ) { break; } else { //DO something in the background } } });
您在应用程序到期之前启动位置管理器的位置,以确保它在后台继续其活动状态。这将允许应用程序始终在后台运行,因此您可以通过打开/关闭 gps 来间歇性地检查位置
于 2012-10-10T19:11:56.233 回答