Nie jest to związane z Twoją pracą.
Menu przepełnienia realizowane jest przez PopupWindow. Gdy użytkownik kliknie, aby zamknąć okno PopupWindow, zdarzenie ACTION_DOWN ustawiło się w kolejce do kolejki komunikatów aplikacji. Następnie jest dostarczany do klasy View poprzez ViewPostImeInputStage, a na końcu ViewPostImeInputStage wysyła to zdarzenie wejściowe do odbiornika onTouchEvent programu PopupWindow.
@Override
public boolean onTouchEvent(MotionEvent event) {
final int x = (int) event.getX();
final int y = (int) event.getY();
if ((event.getAction() == MotionEvent.ACTION_DOWN)
&& ((x < 0) || (x >= getWidth()) || (y < 0) || (y >= getHeight()))) {
dismiss();
return true;
} else if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
dismiss();
return true;
} else {
return super.onTouchEvent(event);
}
}
dissmiss() spróbuj zamknąć PopupWindow i PopupWindow :: onDetachedWindow zadzwonić WindowInputEventReceiver :: rozporządzania() pierwsza.
Następnie wywołaj ViewPostImeInputStage WindowInputEventReceiver :: finishInputEvent, aby zakończyć wydarzenie ACTION_DOWN. Jednak instancja WindowInputEventReceiver jest już utylizowana, więc wysyła komunikaty ostrzegawcze.
Można debugować go według punktu przerwania. otwórz InputEventReceiver.java (potrzebujesz kodu źródłowego Android w frameworku/base /) i ustaw punkt przerwania w metodzie dispose.
Jest to ostrzeżenie i nie jest częścią aplikacji. Wygląda na problem w samym systemie Android. Powinieneś być w stanie zignorować to bezpiecznie –
używasz ActionBar Sherlock? –
@JustinV. Używam do tego celu systemu Android. – alexismorin