Android出现java.lang.RuntimeException: Can't toast on a thread that has not called Looper.prepare
16lz
2021-01-23
Android出现java.lang.RuntimeException: Can't toast on a thread that has not called Looper.prepare()
今天又是写代码的美好一天>_<
往常运行的好好的程序,今天运行在弹出 吐司(Toast)时却出现了java.lang.RuntimeException: Can’t toast on a thread that has not called Looper.prepare(),ε=(´ο`*)))唉,我也很无奈。于是去网上搜了一下解决办法。
然后就在网上找到了一个容易懂得解决办法 https://www.jianshu.com/p/86459c23bdf5 ,非常感谢这位作者大大。
我遇到的解决办法是作者大大中的第一种。
根据作者大大的代码跟踪才得知了,程序在 主线程中创建handler后会创建一个looper对象,而子线程却不会,所以我在我使用Toast前先执行 Looper.prepare();使用Toast后执行 Looper.loop();
if (bmpPhoto == null) { Looper.prepare(); Toast.makeText(mContext, "取图失败!", Toast.LENGTH_SHORT).show(); Looper.loop();// 进入loop中的循环,查看消息队列 return; }
注:bmpPhoto是我获取的一个图片Bitmap;
更多相关文章
- 【Android】使用LiveData KTX Builder让代码更简洁
- 一个简单的iPhone项目及代码
- 开机引导程序只执行一次的方法
- Android 开机自启动程序
- android studio调试c++代码
- AndRoid完全退出程序
- Android系统下如何在程序中对XML里面元素进行赋值
- Android关机界面代码