Dies steht nicht mit Ihrer Arbeit in Verbindung.
Überlaufmenü wird von PopupWindow implementiert. Wenn Benutzer das Ereignis "PopupWindow, ACTION_DOWN" berührt, wird es in die Nachrichtenwarteschlange der App eingereiht. Dann wird es an View über die ViewPostImeInputStage-Klasse übergeben und schließlich sendet ViewPostImeInputStage dieses Eingabeereignis an den onTouchEvent-Listener von 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() versuchen PopupWindow und PopupWindow schließen :: onDetachedWindow WindowInputEventReceiver rufen :: entsorgen() aus.
Und dann ViewPostImeInputStage Aufruf WindowInputEventReceiver :: finishInputEvent dieses ACTION_DOWN Ereignis zu beenden. Die WindowInputEventReceiver-Instanz ist jedoch bereits entsorgt, sodass Warnmeldungen ausgegeben werden.
Sie können es nach Haltepunkt debuggen. Öffne InputEventReceiver.java (benötige android Quellcode bei Framework/base /) und setze den Haltepunkt bei der dispose Methode.
Es ist eine Warnung, und es ist nicht Teil Ihrer App. Sieht in Android selbst wie ein Problem aus. Sie sollten in der Lage sein, es sicher zu ignorieren –
verwenden Sie ActionBar Sherlock? –
@JustinV. Ich benutze Android für diesen Zweck. – alexismorin