0

このトピックに関してかなりの数の質問が寄せられていることは承知しています。ただし、私の質問に具体的に答えていないようで、正しい答えがリストされていない人もいるので、これを書いています。

iPhone アプリでやりたいこと アプリが起動していないときにデータをフェッチする (基本的には、ユーザーが次にアプリを使用するときに高速化するためのプリフェッチです)。これを行う最善の方法は何ですか?

いくつかの潜在的な解決策 私が考えることができるものと、Stackoverflow およびそのようなリソースからのもの

可能性 1 : 1 日の特定の時間にデータを取得します (おそらく真夜中以降?)。そもそもこれが可能である場合、これを行う方法を「明確に」見ていません。NSTimerの使用を提案する人もいますが、アプリケーションが中断されるとタイマーは延期されますよね?

可能性 2 :ローカル通知を使用する(?) しかし、通知がユーザーに何かを伝えるために使用されることを具体的に言及している Apple のドキュメントが表示されるので、これは Apple のドキュメントに反するでしょう?

可能性 3 : applicationDidEnterBackground -> beginBackgroundTaskWithExpirationHandlerを介して。ただし、これは 1 日の特定の時間にフェッチを実行しません。ただし、「プリ」フェッチの目的には役立つ可能性があります。これは他の2つよりも優れていますか?

何か考えはありますか?

4

2 に答える 2

1

提示したオプションはいずれもiOSで機能せず、ユーザーはいつでもバックグラウンドアプリケーションを閉じることができることをすでに知っているので、次の暦日のデータを取得することをお勧めします。アプリが実行されています。

于 2012-09-16T12:07:56.300 に答える
1

samfisher があなたの仕様を何も言っていないように。Apple のアクティブなバックグラウンド要件に適合します。私があなたに提案できる唯一のことはbeginBackgroundTaskWithExpirationHandler 、プリフェッチの代わりに「ポストフェッチ」であると理解していますが、それが唯一の方法だと思います。
もう 1 つの方法は、少しトリッキーですが、何らかの地理位置情報でプリフェッチを偽装することです。この方法では、アクティブな背景を選択できます。これには、次のような多くの側面が含まれます。

  • アプリストアの拒否
  • バッテリー消費

アプリストアには、このトリックを使用するアプリがたくさんあります。データ トラフィックを計算するアプリを思い出すことができます。

于 2012-09-16T12:54:04.087 に答える