BLEを介してカスタムハードウェアと通信するアプリケーションがあります。通常の状況では、ユーザーがホームボタンを押したときにアプリケーションをすぐに終了させたいです。ただし、アプリケーションがカスタムハードウェアのファームウェアを更新している最中に、iOSがアプリケーションを終了するのを思いとどまらせたいと思います。このファームウェア操作は、開始から終了まで約5分かかります。iOSがアプリを完全に終了するのを防ぐ方法はないことは知っていますが、ファームウェアの更新操作中にアプリケーションが終了するのを防ぐために何かできることはありますか?
3分以内が必要な場合は、更新時にbeginBackgroundTaskWithName:expirationHandler:を使用できます。これにより、ユーザーがホームボタンを押しても、アプリはタスクを完了するためにバックグラウンドで実行を継続する時間を要求します。問題は、それがあなたに3分しか与えず、それ以上ではないということです。
アップロードを完了するには3分では明らかに不十分であるため、この道を進むと、これを組み合わせると、ユーザーにアプリを離れないように指示する非常に深刻なメッセージが画面に表示されることをお勧めします。また、アプリがバックグラウンド(applicationDidEnterBackground
)に入ろうとしているときに、アプリに戻るか、そうでない場合は深刻な結果に直面するようにユーザーに警告するローカル通知をスケジュールすることもできます。
さらに良いことに、適切なバックグラウンドモードを必要とするアプリとして宣言できる場合があります。たとえば、専用のバックグラウンドモードがある、bluetooth-central
またはbluetooth-peripheral
適用できる場合があります。その場合、3分間の制限は適用されません。iOS用アプリプログラミングガイドのアプリでサポートされているバックグラウンドタスクの宣言を参照してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加