私のアプリケーションは、自動的にディクテーションを開始する必要があります( presentTextInputControllerWithSuggestionsと提案の空の配列を使用)。このために、特定の画面でX 秒後にディクテーションをスケジュールします。
しかし、ユーザーがディクテーションを開始する前にアプリケーションを終了すると問題が発生します。
最初は、ディクテーションをスケジュールしました。アプリケーションを離れると、ディクテーションがバックグラウンドで開始され、アプリケーションに戻ったときに画面は表示されましたが、ディクテーション画面は表示されませんでした。ディクテーションを再開しようとしても機能しませんでした (関数が呼び出されてディクテーションが開始されますが、バックグラウンドでも画面が変化しません)。
そのため、アプリケーションが前に離れている場合は、ディクテーションを開始しないようにしています。このために、 ExtentienDelegate の applicationWillResignActive 関数でブール値を変更します。しかし、私の問題は、ユーザーがアプリケーションを終了したときにこの関数がすぐに呼び出されないことです。そのため、ユーザーがディクテーションを開始する 1 秒以上前にアプリケーションを終了すると、ブール値が変更され、ディクテーションは開始されません。私が戻ってくると、それは機能します。しかし、開始直前に終了すると、ディクテーションはバックグラウンドで開始され続け、戻ってきたときにディクテーションを再開することはできません。
それで、アプリケーションが停止したときにブール値を正確に変更する解決策があるかどうか、またはこの問題に対する別の解決策を見つける解決策があるかどうか教えてください(プログラムでディクテーションを停止する、...)