iPhone:当App在后台运行时捕获事件

时间:2012-01-19 13:45:22

标签: iphone event-handling background cllocationmanager device-orientation

当我的应用程序在后台运行时,有人可以告诉我是否可以处理OrientationChanged,Shake,LocationChanged等事件。

我尝试过以下代码,但只有当我的应用在前台运行时才会调用它!

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
//if the time interval returned from core location is more than two minutes we ignore it because it might be from an old session
if ( abs([newLocation.timestamp timeIntervalSinceDate: [NSDate date]]) < 120) {     
    self.currentLocation = newLocation;
}
NSLog(@"lat: %f long:%f",currentLocation.coordinate.latitude,currentLocation.coordinate.longitude);
}

感谢。

1 个答案:

答案 0 :(得分:2)

http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html

您应在 UIRequiredDeviceCapabilities

键下的info.plist文件中加入位置服务

然后您的应用将在后台接收位置更新。 然而,这会以更快的速度耗尽电池......用户不知道太多......如果可能,您应该只注册重要位置

方向已更改更新将无法在后台进行。 摇可能......我不确定