0
我有一个视图,我添加到窗口管理器。将在我检查它是否已经在计算器另一个问题添加到窗口管理器,例如:查看已被添加到窗口管理器
protected void addViewToWindow(@NonNull OverlayLayout view) {
if (view.getWindowToken() == null) {
handler.post(() -> windowManager.addView(view, view.getViewParams()));
}
}
但在与Android 5某些设备有此异常:
View has already been added to the window manager.
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:243)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5942)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
哪有我解决这个问题?请帮助我
看起来你正在调用'addViewToWindow'以查看系统后来尝试附加到窗口管理器。你能编辑你的问题来解释你在哪里调用这个方法吗? – Haem
注意: - 为什么如果您已经使用此符号@NonNull检查条件,则再次检查null。 – sushildlh
@HeikkiMäenpää我只需要检查这个视图是否已经附加 – shmakova