アプリケーションをバックグラウンドで実行し続けるにはどうすればよいですか? これを行うには、iPhone をジェイルブレイクする必要がありますか? このアプリは、設定された間隔ごとにインターネットから何かをチェックし、必要に応じて通知するために必要です。
7 に答える
はい、脱獄する必要はありません。Appleのこのドキュメントの「長時間実行されるバックグラウンド タスクの実装」セクションを確認してください。
Apple のドキュメントから: Declaring Your App's supported Background Tasks
一部のタイプのバックグラウンド実行のサポートは、それらを使用するアプリによって事前に宣言する必要があります。アプリは、Info.plist ファイルを使用してサービスのサポートを宣言します。UIBackgroundModes キーを Info.plist ファイルに追加し、その値を次の文字列の 1 つ以上を含む配列に設定します (上記のリンクから Apple のドキュメントを参照してください)。
これを行うには、ローカル通知を使用します。しかし、これは毎回チェックするわけではありません。特定のイベントをチェックする時間を設定する必要があります。時間枠を減らすことでこれを短縮できます。これを達成する方法については、ローカル通知の詳細をお読みください:
私はこれがあなたが必要としたものだと思います
iOS アプリケーションがバックグラウンドに移行すると、時間のかかるタスクは一時停止しますか?
これはあなたを助けるかもしれません...
コーディングをお楽しみください :)
これがあなたの質問に対する答えではないことは承知していますが、解決策だと思います。
これは、定期的に何かをチェックしたり、インターネットからデータを取得したりすることを前提としていますか?
設定された間隔ごとにインターネットをチェックして知りたいことを確認するサービスを作成し、プッシュ通知を作成して、サーバーがダウンしている場合、または監視しようとしているものの状態が変化した場合に警告します。ただのアイデア。
はい、このようなことができます。そのためには、info.plist にエントリを設定して、アプリがバックグラウンドで実行されることを OS に伝える必要があります。特定のタイムスタンプの後にユーザーの場所をサーバーに渡したいときに、これを行いました。そのために、「必要なバックグラウンド モード」を「アプリが位置情報の更新に登録する」に設定しました。
タイプ UIBackgroundTaskIdentifier のハンドラーを作成できます。
applicationDidEnterBackground メソッドですでにこれを行うことができます