一位用户引起了我的注意。我正在启动一个 popupWindow 并显示一个编辑文本字段。当他与 EditText 字段(可能是拼写检查器或类似的东西)交互时,他的设备似乎正在尝试启动另一个 popupWindow。现在我听说 popupWindows 在启动其他 popupWindows 时遇到问题,但我不确定如何或是否可以阻止它,因为调用函数是我无法控制的 HTC 库。
我看不到 HTC 代码,但我猜它正在尝试使用“this”作为上下文来调用弹出窗口,在我的例子中是一个 popupWindow。再说一次,我可能对问题的原因很不满意。有任何想法吗?
0android.view.WindowManager$BadTokenException: Unable to add window -- token android.view.ViewRoot$W@479562d0 is not valid; is your activity running?
1at android.view.ViewRoot.setView(ViewRoot.java:509)
2at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
3at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
4at android.widget.PopupWindow.invokePopup(PopupWindow.java:828)
5at android.widget.PopupWindow.showAtLocation(PopupWindow.java:688)
6at com.htc.textselection.SelectionAnchor.show(SelectionAnchor.java:121)
7at com.htc.textselection.TextSelectionMethodImpl.showAnchorCursorMode(TextSelectionMethodImpl.java:1290)
8at com.htc.textselection.TextSelectionMethodImpl.onTouchInEditText(TextSelectionMethodImpl.java:2113)
9at com.htc.textselection.TextSelectionMethodImpl.onTouchEvent(TextSelectionMethodImpl.java:1922)
10at android.widget.TextView.onTouchEvent(TextView.java:7166)
11at android.view.View.dispatchTouchEvent(View.java:3818)
12at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1131)
13at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1131)
14at android.view.ViewRoot.handleMessage(ViewRoot.java:1806)
15at android.os.Handler.dispatchMessage(Handler.java:99)
16at android.os.Looper.loop(Looper.java:143)
17at android.app.ActivityThread.main(ActivityThread.java:5073)
18at java.lang.reflect.Method.invokeNative(Native Method)
19at java.lang.reflect.Method.invoke(Method.java:521)
20at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
21at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
22at dalvik.system.NativeStart.main(Native Method)