显示Toast消息时出错:无法在未调用Looper.prepare()的线程中创build处理程序

我得到一个Runtime Exception:Can't create handler inside thread that has not called Looper.prepare() while displaying the Toast message在工作线程中Runtime Exception:Can't create handler inside thread that has not called Looper.prepare() while displaying the Toast message

我有一个服务(在远程进程中运行),它创build一个对象。 该对象负责连接到线程中的服务器。 我得到了服务器的回应。 我想显示来自服务器的信息在吐司。 当时我得到这个例外。 我尝试使用handler.post在Handler中发布它。 但我仍然得到例外。

应该怎样避免这种情况呢?

Solutions Collecting From Web of "显示Toast消息时出错:无法在未调用Looper.prepare()的线程中创build处理程序"

像这样定义一个Handler:

  private final Handler handler = new Handler() { public void handleMessage(Message msg) { if(msg.arg1 == 1) Toast.makeText(getApplicationContext(),"Your message", Toast.LENGTH_LONG).show(); } } 

然后把下面的代码放在需要显示Toast消息的地方。

 Message msg = handler.obtainMessage(); msg.arg1 = 1; handler.sendMessage(msg);