0

私はしばらくhttps://github.com/Jawbone/UPPlatform_iOS_SDKを使用しており、ユーザーの毎日の歩数を取得しています。

アプリがバックグラウンド状態のときに、Jawbone API からデータを取得したいと考えていました。私はこのチュートリアルに従いました: http://www.devfright.com/ios-7-background-app-refresh-tutorial/ このメソッドを呼び出すには:

[UPMoveAPI getMovesWithLimit:10U completion:^(NSArray *moves, UPURLResponse *response, NSError *error) {
    NSLog(@"This is not getting executed in background");
}];

顎骨セッションが正常に検証され、私のセッションがアクティブになっているようです。しかし、応答がなく、上記の NSLog がバックグラウンドで実行されません。Jawbone サポートに連絡してみましたが、返信がないようです。

同じ経験した方、助けてください。

4

1 に答える 1

0

以下のコードオプションを試してください:

オプション1

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
   [UPMoveAPI getMovesWithLimit:10U completion:^(NSArray *moves, UPURLResponse *response, NSError *error) {
       NSLog(@"This is not getting executed in background");
   }];
}

オプション 2 https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

bgTask = [application beginBackgroundTaskWithName:@"MyTask" expirationHandler:^{
        // Clean up any unfinished task business by marking where you
        // stopped or ending the task outright.
        [application endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    }];

    // Start the long-running task and return immediately.
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        // Do the work associated with the task, preferably in chunks.

        [application endBackgroundTask:bgTask];
        bgTask = UIBackgroundTaskInvalid;
    });

また、info.plistにUIBackgroundModesを追加する必要があることにも注意してください。

お役に立てれば。

于 2015-02-19T10:40:50.610 に答える