0

iOS アプリにバックグラウンド フェッチを実装しました。アプリのデリゲートにこのメソッドを実装しました。

- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler

これを実装する正しい方法は、新しいデータがあり、ダウンロードするcompletionHandler(UIBackgroundFetchResultNewData)新しいデータがないときに呼び出すことです。completionHandler(UIBackgroundFetchResultNoData)

ただし、すべての Web サービスがこの情報を提供できるわけではありません。それらのいくつかは、新しいものがないにもかかわらず、開発者が常に新しいデータを取得することを要求するだけです. この場合、completionHandler(UIBackgroundFetchResultNewData)すべてのバックグラウンド フェッチで呼び出すことのマイナス面は何でしょうか?

4

1 に答える 1

2

呼び出しの副作用の 1 つcompletionHandler(UIBackgroundFetchResultNewData)は、ユーザーがアプリに戻ったときに UI がすぐに更新されるように、UI のスナップショットが取得されることです。

データをフェッチする頻度と、それが新しい可能性がある (またはそうでない) 可能性に応じて、不要なスナップショットのキャプチャとキャッシュへの保存が原因で、ある程度のパフォーマンス ヒットが発生する可能性があります。アプリがすでにパフォーマンスとバッテリー使用量の限界を押し上げている場合は、Web サービス側で変更を加えることを検討する価値があるかもしれません。

于 2015-11-04T08:46:14.337 に答える