概要
DialogFragment を使用した 時に、Back ボタンで DialogFragment を閉じると W/InputEventReceiver: Attempted to finish an input event but the input event receiver has already been disposed.
と表示される件の対処方法です。(2016.7.8現在、未解決)
確認環境
参考情報
I have this error message in the following scenario: Activity creates a Dialog. The Dialog is assigned a KeyListener. Back Button is pressed, and the Activity+Dialog are closed. Apparently, the Dialog is closed before the "input event" is finished. – Pawel Dec 24 '14 at 16:42
Dialog に KeyListener を登録して、Back ボタンを押下して Activity と Dialog を閉じる。InputEvent が終了する前に Dialog が閉じられると発生している様子。
I have same problem. I have PopupWindow with button (R.id.imageView1). I have callback on that button. I deregister callback when popup is disimissed (popupWindow.setOnDismissListener).
PopupWindow でも同様の問題が発生する様子。DismissListener にて登録されている Listener を削除することによって回避できる様子。
mReceiverPtr == 0
の時 finishInputEvent
メソッドで警告をログに出力している。dispose
メソッドで mReceiverPtr = 0
としている。
対処方法
Back ボタンの InputEvent が終了する前に DialogFragment が dismiss されるために警告が発生されていると推測される。
どうしたものか…。こういうものと諦めるのが良いか…。