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;

更多相关文章

  1. 【Android】使用LiveData KTX Builder让代码更简洁
  2. 一个简单的iPhone项目及代码
  3. 开机引导程序只执行一次的方法
  4. Android 开机自启动程序
  5. android studio调试c++代码
  6. AndRoid完全退出程序
  7. Android系统下如何在程序中对XML里面元素进行赋值
  8. Android关机界面代码

随机推荐

  1. Android(十):屏幕相关操作
  2. android ViewSwitcher详解
  3. Android计算地图上两点距离
  4. sqlit导入外部数据库查找数据方法
  5. cocos2d-x学习笔记 如何将win32移植到and
  6. Android彩蛋效果,微信彩蛋效果
  7. Android ApiDemos示例解析(139):Views->L
  8. Android NDK编译lame
  9. 获取Android自带资源的方式
  10. Android下如何获取Mac地址?