RelativeLayout を拡張する CustomView があります。次のレイアウト パラメータ フラグを指定して WindowManager.addView() メソッドを使用して画面に追加します。
final int flags =WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE |WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL|WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH;
dispatchKeyEvent() は CustomView クラスでオーバーライドされますが、戻るボタンを押したときにウィンドウに追加した後、dispatchKeyEvent() が呼び出されません。
フラグから WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE を削除すると、dispatchKeyEvent() が呼び出されますが、customView 内でタッチ イベントを検出できません。
私のcustomViewがタッチイベントとキーイベントの両方を検出し、ビューの外側にも触れることができるフラグの組み合わせを親切に提案してください
これが重複している場合は、私を投稿に転用してください。