0

ばかげた質問で申し訳ありませんが、ios7 でバックグラウンド フェッチがどのように呼び出されているのか理解できません。コードは次のとおりです。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [application setMinimumBackgroundFetchInterval:20];
    return YES;
}

-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    NSLog(@"Fetch called");
    completionHandler(UIBackgroundFetchResultNoData);
    [UIApplication sharedApplication].applicationIconBadgeNumber += 1;
}

問題は、間隔を 20 秒に設定したのに、1 回しか実行されないことです。そのような振る舞いは私には奇妙に見えます。多分私は間違っていて、バックグラウンド フェッチのシミュレーションはデフォルトで 1 回しか実行しませんが、実際のデバイスでは定期的に実行されます。20秒ごとに呼び出されることを確認するにはどうすればよいですか?? 助けてください!

4

1 に答える 1

0

設定しているのは最小フェッチ間隔です。これは、バックグラウンド フェッチが再度トリガーされるまでに経過する必要がある時間です。その後、iOS は、ユーザーがいつアプリを開く可能性が高いかを推定するヒューリスティックを使用して、バックグラウンド フェッチを実際にトリガーするタイミングを決定します。

于 2013-10-21T10:11:18.500 に答える