這與您的工作無關。
溢出菜單由PopupWindow實現。當用戶觸摸關閉PopupWindow時,ACTION_DOWN事件排隊等待應用程序的消息隊列。然後它通過ViewPostImeInputStage類傳遞給View,最後ViewPostImeInputStage將此輸入事件發送到PopupWindow的onTouchEvent偵聽器。
@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()嘗試關閉PopupWindow和PopupWindow :: onDetachedWindow調用WindowInputEventReceiver :: Dispose()方法第一。
然後ViewPostImeInputStage調用WindowInputEventReceiver :: finishInputEvent來完成那個ACTION_DOWN事件。然而,WindowInputEventReceiver實例已經處理完畢,所以它會拋出警告消息。
您可以通過斷點來調試它。打開InputEventReceiver.java(在framework/base /下需要android源代碼),並在dispose方法中設置斷點。
它是一個警告,它不是你的應用程序的一部分。看起來像是Android本身的問題。你應該能夠安全地忽略它 – 2013-03-02 14:05:07
你在使用ActionBar Sherlock嗎? – 2013-03-02 15:53:09
@JustinV。我正在使用Android的股票。 – alexismorin 2013-03-03 02:05:49