問題タブ [background-fetch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
4120 参照

ios - didFinishLaunchingWithOptions メソッドでバックグラウンド フェッチのためにアプリが起動されたことを検出するにはどうすればよいですか?

アプリケーション デリゲートの didFinishLaunchingWithOptions で、バックグラウンド フェッチのためにアプリケーションが起動されたかどうかを確認したいと考えています。launchOptions ディクショナリには何もありません。それで、それを確認する方法はありますか?

を確認できることはわかってapplicationStateいますが、アプリを正常に起動しても、何らかの理由で UIApplicationStateBackground が返されることがあります。

Analytics の初期化コードにブレークポイントを作成したところ、アプリを正常に起動してもこのブロックに入ることがある!

applicationDidBecomeActiveいつ、またはapplicationDidEnterBackground呼び出されるかを後で検出できることを知っています。これらのアプローチを使用して状態を検出する場合は、Analytics の初期化コードを別の場所に移動する必要があります。残ってapplication:didFinishLaunchingWithOptions:いると、アプリがバックグラウンド フェッチを開始するたびに呼び出されます。applicationStateでは、Analytics の初期化コードを別のメソッドに移動し、チェックインしないようにする必要がありapplication:didFinishLaunchingWithOptions:ますか? もしそうなら、私はこれにどの方法を使うことができますか?

0 投票する
3 に答える
12508 参照

ios - iOS バックグラウンド フェッチのカスタム間隔

バックグラウンドフェッチに関するAppleのドキュメントをすべて読みましたが、現在は次のように使用しています。

バックグラウンド フェッチを実行するタイミングを OS に決定させますが、次のように設定すると、次のようになります。

これは、フェッチが 6 時間ごとに行われるということですか?

0 投票する
1 に答える
1331 参照

ios - UIApplication の applicationState が間違った値を返す

私のアプリはバックグラウンド フェッチを実行して一部のデータを更新します。私の最初のView ControllerのviewDidLoadメソッドで、アプリがバックグラウンドフェッチで実行されているかどうかを検出したいですか?

これを使用してアプリの状態を確認するのは非常に簡単です。

しかし、何らかの理由でアプリを正常に起動しても、プログラムがこのブレークポイントに到達することがあります。つまり、applicationStateが返されますUIApplicationStateBackground。バックグラウンドフェッチが実行されている瞬間にアプリの起動が発生するか、そのようなことはありますか?

viewDidLoadアプリがバックグラウンド モードで実行されているときにメソッドでコードを実行したくないため、このifブロックが必要viewDidLoadです。

0 投票する
2 に答える
155 参照

ios - バックグラウンド フェッチ内の遅延 EXEC_BAD_ACCESS

バックグラウンド モード (最小化) で動作するアプリケーションを作成しており、サーバー上の情報をチェックする特定のメソッドを 90 秒ごとに実行しています。コードは次のとおりです。

AppDelegate.m

MyFristViewController.m

私のコードはうまく機能しますが、前に述べたように、90 秒ごとにコマンドを数回実行する必要があります。

このコードの問題は、最初は完全に機能することです。彼が 90 秒を期待して同じコードを 2 回目に実行すると、次のコード行のエラー メッセージEXEC_BAD_ACCESSが表示されます。

このコード行を削除すると、メッセージが表示され、アプリは正常に動作します (クラッシュすることはありません)。

アプリケーション デリゲートが -application:performFetchWithCompletionHandler: への呼び出しを受け取りましたが、完了ハンドラーが呼び出されませんでした。

このメッセージを受け取るのは良くないと思います。要するに、私がやりたいことは、アプリケーションが最小化されているときに、このコマンドを 90 秒ごとに永久に実行することです。私はそれを正しい方法でやっていますか?

0 投票する
1 に答える
88 参照

ios - iOS で代用バックグラウンド フェッチをスケジュールする

特定のスケジュールされた時間にアプリでバックグラウンド フェッチを実行しようとしています。私はiOSにこれを自分で整理させるという考えを持っていたので、(AppDelegateで):

そして(AppDelegateでも)

Xcode でバックグラウンド チェックを手動で起動すると、これは完全に機能します。残念ながら、そのままにしておくと完全には機能しません。

getStatusUpdate 関数を実行する時間をスケジュールしたり、特定の時間にバックグラウンド フェッチを発生させたりするにはどうすればよいですか (実際の使用例では、目覚まし時計のように、ユーザーが定義した時間にアプリがチェックします。これは常に実行され、バッテリーをかみ砕くものではありません)

アラームのスケジュール設定について、インターネット上で多くの情報を見つけました (ここを含む - CoreLocation を使用してバックグラウンド フェッチを起動することを提案した例をここで見つけました - これが機能するかどうかはわかりませんが、電力節約の理由から、私はその考えが好きではありません.) -しかし、これはアラートを画面に表示するだけであり、アラートを表示したくありません-少なくとも、ステータスの更新を確認する前ではありません.

いつものように、どんな助けも非常にありがたく受け取られます (しかし、答えは、私がやりたいことをすることができないということです!)。

0 投票する
1 に答える
3745 参照

ios - iOS でバックグラウンド フェッチが実行される頻度はどれくらいですか?

iOS 7 では、アプリが最前面にないときにアプリがデータをフェッチするためのバックグラウンド フェッチ モードがサポートされています。

都合のよいときに、システムはアプリをバックグラウンドで起動または再開し、新しいコンテンツをダウンロードするためのわずかな時間を与えます。

私の質問は、バックグラウンド フェッチ コードが実行される頻度はどのくらいですか?

最小間隔を設定した場合:

10秒ごとに実行されますか、それとも1日に1回実行されますか? 一般的に、どのような間隔を期待する必要がありますか?

0 投票する
2 に答える
2932 参照

swift - バックグラウンド フェッチでの複数の非同期リクエストのベスト プラクティスは何ですか?

複数のユーザー アカウントを持つことができるアプリがあります。それらすべてをバックグラウンドで更新する必要があります。問題は:

  • 時間は限られています (最大 30 秒ですが、リクエストにはそれ以上かかる場合があります)
  • すべてのリクエストは非同期です

いつ完了ハンドラを呼び出す必要がありますか?

0 投票する
1 に答える
2074 参照

ios - アプリを再起動するたびに setMinimumBackgroundFetchInterval を呼び出す必要がありますか?

バックグラウンド フェッチを使用するアプリを開発しました。更新間の最小間隔を最小に設定しました。

この値はシステムによって保存されると思ったので、アプリの再起動時に再設定する必要はありません。しかし、デバイスの 1 つで最後にバックグラウンド フェッチが行われたのが 2 週間前であることに気付きました。更新の間隔が変わる可能性があることは知っていますが、2 週間が正常だとは思いません。特に、20〜30分ごとにバックグラウンド更新を呼び出して、数か月間機能したという事実を考慮してください.

残念ながら、MinimumBackgroundFetchInterval私の理論を確認するための を入手する方法を見つけることができませんでした (ちなみに、入手方法を知っている人はいますか?)。私は のみをチェックapplication.backgroundRefreshStatusし、それは に等しいUIBackgroundRefreshStatusAvailableですが、これはユーザーがアプリにバックグラウンド更新の使用を許可していることを意味しているだけだと思います (よくわかりません)。