一个Toast报错问题 java.lang.IllegalStateException: View has already been added to the window manager.
来源:互联网 发布:手机怎么禁止软件安装 编辑:程序博客网 时间:2024/06/05 17:47
1.进入应用,然后退出当前Activity,再进入应用,总是会报错。
10-28 17:54:20.104 29138-29138/com.letv.tv D/AndroidRuntime: Shutting down VM
10-28 17:54:20.106 29138-29138/com.letv.tv E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.letv.tv, PID: 29138
java.lang.IllegalStateException: View com.letv.core.scaleview.ScaleRelativeLayout{ff1169b V.E...... ......I. 0,0-0,0} has already been added to the window manager.
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:281)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
at android.widget.Toast$TN.handleShow(Toast.java:430)
at android.widget.Toast$TN$1.run(Toast.java:336)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:731)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:621)
2.查了半天也找不到原因,后来发现问题出在自定义的Toast。写了一个单例的Toast类,但是重新进入时,单例类还是之前的那个,view没有销毁;但是又重新被添加。所以才会报错。
private static volatile LeChildToast sInstance;public LeChildToast(Context context) { super(context); View view = LayoutInflater.from(context).inflate(R.layout.lechild_toast, null); // 动态设置背景 int paddingLeft = view.getPaddingLeft(); int paddingTop = view.getPaddingTop(); int paddingRight = view.getPaddingRight(); int paddingBottom = view.getPaddingBottom(); view.setBackgroundDrawable(SkinManager.getDrawable(R.drawable.lechild_toast_bg)); view.setPadding(paddingLeft, paddingTop, paddingRight, paddingBottom); // 动态设置图标 View icon = view.findViewById(R.id.icon); icon.setBackgroundDrawable(SkinManager.getDrawable(R.attr.lechild_drawable_lechild_toast_icon)); this.mTextView = (TextView) view.findViewById(R.id.msg); this.setView(view);}public static void reset() { sInstance = null;}
3.解决方案,在Activity的基类里,onDestory()的时候调用reset(),保证view可以被销毁。
0 0
- 一个Toast报错问题 java.lang.IllegalStateException: View has already been added to the window manager.
- java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been calle
- java.lang.IllegalStateException:Cannot add header view to list==setAdapter has already been called.
- java.lang.IllegalStateException:Cannot add header view to list==setAdapter has already been called.
- java.lang.IllegalStateException: Fragment already added问题
- Server报错:java.lang.IllegalStateException: Cannot create a session after the response has been commit
- VS2015报错: An item with the same key has already been added
- 文件能下载,但是报错:java.lang.IllegalStateException:getOutputStream() has already been called for this response
- 生成验证码页面 报 java.lang.IllegalStateException: getOutputStream() has already been called 解决办法
- Android RecyclerView 报错:java.lang.IllegalStateException: The specified child already has a...
- 报错信息为:java.lang.IllegalStateException: The specified child already has a parent.
- java.lang.IllegalStateException: Cannot execute task: the task has already been executed (a task can
- AsyncTask 错误java.lang.IllegalStateException: Cannot execute task: the task has already been executed
- The entry 'XXX' has already been added
- The entry ['*'] has already been added
- java.lang.IllegalStateException: Response has already been committed
- java.lang.IllegalStateException: getOutputStream() has already been call
- java.lang.IllegalStateException: getOutputStream() has already been call
- 商业模型
- SVProgressHUD 的显示时间
- ubuntu的系统 装载hadoop spark等配件 空间全部被占满了
- Attention to Scale: Scale-Aware Semantic Image Segmentation论文阅读笔记
- 野指针和内存泄漏以及内存溢出总结
- 一个Toast报错问题 java.lang.IllegalStateException: View has already been added to the window manager.
- CUDA 学习(二十一)、优化策略6: 资源竞争
- 带电电缆识别仪(罗氏线圈)
- am335x mtdblock ubifs挂接
- wamp下多域名配置问题--该方法对phpstudy配置同样可以生效
- jquery-$.ajax提交与$.get获取数据
- Python基础学习--第三篇(List和Tuple类型)
- CPU飙高问题 - 线程排查
- TP框架下JQuery自动刷新div