在Async中使用Toast

来源:互联网 发布:nginx 域名指向目录 编辑:程序博客网 时间:2024/04/30 18:36
 Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()  

在报错的方法前加Looper.prepare(); 
方法末尾加Looper.loop();

在async里面调用toast时候 会报错 toast前后加就可以解决

但是问题来了 loop是一个循环 如果是你要在toast后面还要执行 这种方式就不可行


你需要这样

public void toast(final String s)
   {
       Handler handler=new Handler(Looper.getMainLooper());
       handler.post(
               new Runnable() {
                   @Override
                   public void run() {
                       Toast.makeText(context,s,Toast.LENGTH_SHORT).show();
                   }
               }
       );

使用handler发送一个消息  然后在async中调用 toast(str); 就可以解决了

0 0