-2

バックグラウンドでiPhoneの重力を毎秒チェックするアプリがあります。Xcode に接続しているときにこのコードを実行すると、プログラムがバックグラウンドで 30 分以上実行されます。ただし、Xcode に接続されていない場合は、バックグラウンドで 10 分が経過する前に実行を停止します。位置情報の更新とモーションの更新を使用します。

- (void)applicationDidEnterBackground:(UIApplication *)application {

    bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
        bgTask = UIBackgroundTaskInvalid;
        NSLog(@"End Background Tasks");
    }];

    locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self;
    [locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8) {
        [locationManager requestAlwaysAuthorization];
    }
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9) {
        locationManager.allowsBackgroundLocationUpdates = YES;
    }
    [locationManager startUpdatingLocation];

    [self.motionManager startDeviceMotionUpdates];
}
4

1 に答える 1

0

ターゲットの [機能] で [バックグラウンド モード] が有効になっていることを確認し、[場所の更新] モードが設定されていることを確認します。

于 2016-02-08T16:04:12.243 に答える