私のアプリは、フォアグラウンドまたはバックグラウンド (アプリが最小化されている場合) でAudioRecord API を使用してオーディオを録音しますが、ユーザーがアプリケーション マネージャーからアプリケーションを強制停止すると、オーディオ ファイルが破損します。
他のシナリオでは、レコーダーを停止してオーディオ ヘッダーを更新することができました。ただし、アプリが強制停止された場合、アプリはコールバックを取得しません。
この状況をどのように処理しますか?
私のアプリは、フォアグラウンドまたはバックグラウンド (アプリが最小化されている場合) でAudioRecord API を使用してオーディオを録音しますが、ユーザーがアプリケーション マネージャーからアプリケーションを強制停止すると、オーディオ ファイルが破損します。
他のシナリオでは、レコーダーを停止してオーディオ ヘッダーを更新することができました。ただし、アプリが強制停止された場合、アプリはコールバックを取得しません。
この状況をどのように処理しますか?
基本的にこれはできません。理由は、アプリ システムを強制終了するとプロセスが強制終了され、これを処理するためのコードがメモリ内にないためです。
回避策として、マニフェスト内でアプリ クラッシュ インテントを登録し、android:process="com.test.process" を追加して、このレシーバーが別のプロセスで実行されることを宣言します。このレシーバーでサービスを開始して、必要なことを行うことができます。このアプローチの問題は、元のアプリケーション メモリにアクセスできないことですが、インテント エクストラ内で強制的に閉じられたアプリに関するデータがいくつかあることです。