zoukankan      html  css  js  c++  java
  • 非 UI 线程 调用 Toast的问题

    今天维护之前同事写的一个应用的时候,出现这个报错      

    05-14 11:34:49.554: E/AndroidRuntime(7126): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
    05-14 11:34:49.554: E/AndroidRuntime(7126): at android.os.Handler.<init>(Handler.java:197)
    05-14 11:34:49.554: E/AndroidRuntime(7126): at android.os.Handler.<init>(Handler.java:111)
    05-14 11:34:49.554: E/AndroidRuntime(7126): at android.widget.Toast$TN.<init>(Toast.java:324)
    05-14 11:34:49.554: E/AndroidRuntime(7126): at android.widget.Toast.<init>(Toast.java:91)
    05-14 11:34:49.554: E/AndroidRuntime(7126): at android.widget.Toast.makeText(Toast.java:238)
    05-14 11:34:49.554: E/AndroidRuntime(7126): at android.widget.Toast.makeText(Toast.java:265)

           难道是在非UI线程能不能用Toast?


            如果是线程不能用UI的话,肿么会报一个这个线程没有消息队列不能用handler的错误?

            然后我就在网上看了下,发现Toast里面需要一个handler来处理内部的消息,然后我在线程里面加上了 Looper . prepare() 和 Looper . loop(),果然就可以了。

            所以toast要的不是主线程,他要的只是一个handler。

    Conquer Android开发者群95426703,Q:1532507234, 1532507234@qq.com,
  • 相关阅读:
    汉语-词语:冷静
    汉语-词语:沉着
    汉语-词语-稳重:百科
    汉语-词语:沉稳
    汉语-词语-丘壑:百科
    Struts中的常量
    算法整理(四):浅析高速排序的优化问题
    互联网+时代,是更加开放还是封闭
    UI复习练习_优酷布局
    fread与read的差别(文件io补充)
  • 原文地址:https://www.cnblogs.com/renkangke/p/3077507.html
Copyright © 2011-2022 走看看