2016-10-20 12 views
0

iOSでバックグラウンドタスクを実行する方法はありますか?定期的に電話機のシステム状態をチェックし、ウィジェットを報告するのと同じですか?iOSの定期的なバックグラウンドタスク

また、iPhoneがシャットダウンされている場合、電話が再起動したときにそのバックグラウンドタスクを再実行できないことが判明しました。

答えて

1

短い答え:いいえ 長い答えはもっと微妙ですが、とにかくやってはいけません。バックグラウンド更新のためにアプリケーションをスケジュールすることはできますが、それは信頼できません(一定間隔でアプリケーションが実行されません)。また、ユーザーがタスクスイッチャーでアプリケーションをスワイプすると、バックグラウンドでアプリケーションが実行されません。もう1つのハッキーなやり方は、サーバーがより確実にアプリを復帰させるために静かなプッシュを送るようにすることです。しかし、これはまだ成功することは保証されていません。ユーザーがタスクスイッチャーでアプリをスワイプすると、アプリは実行されません。

どちらの場合でも、アプリからウィジェットのアップデートを起動することはできません。ウィジェットの有効期間は、オペレーティングシステムによって管理されます。代わりに、widgetPerformUpdate(completionHandler:)を実装し、そこでウィジェットの更新を実行してください。しかし、上記のように、これは定期的な操作ではありません。

+0

ありがとうございました。あなたの答えは明らかです。 アプリが常にバックグラウンドにある場合(ユーザーがそれをスワイプしないと仮定して)、定期的なタスクをまだできますか?アプリが非アクティブなときにいくつかのコードを実行させる任意のメソッドです。 – user6539552

+0

ユーザーがスワイプしない場合は、サイレントプッシュ通知(「contentAvailable:1」のみのペイロード)が最適です。これは、アプリを目覚めさせると実行することができます。 –

関連する問題