ブロードキャスト レシーバーの寿命を延ばすために、API レベル 11 から Android でサポートされている新しいメソッドがあります。
goAsync と新しいクラス BroadcastReceiever.PendingResult です。
私たちのシナリオは次のとおりです。着信コールのブロードキャスト レシーバーを受信すると、録音を受け入れる/拒否するオプションを含むダイアログとしてアクティビティを表示します。ユーザー入力に基づいて、通話を接続するか切断するかを決定する必要があります。問題は、ユーザー入力を取得するまで受信時のブロードキャスト レシーバーがブロックされていること、およびユーザー入力をアクティビティ ダイアログからブロードキャスト レシーバーに戻す方法を確認する必要があることです。
これは、完全に回答されていない投稿と同様のシナリオです: [link] (発信コールを行う前にユーザー入力を待機します) 上記の投稿から、これは goAsync と BroadcastReceiver.PendingResult を使用して達成できることがわかりました。しかし、これらの API を実装する方法は明確ではありません。
サンプル コードのスニペットは役に立ちます。