Toast没有显示在AsyncTask中

时间:2012-12-07 15:02:25

标签: android android-asynctask toast

问题很简单。实际上当我尝试烘烤消息时,它没有显示出来。你能指导我解决这个问题。

  protected String doInBackground(Void... params) {
            if (result.equals("200")) {
              Toast.makeText(CallArduino,appliance + " Success ",Toast.LENGTH_LONG).show();    
          }else { 

                Toast.makeText(CallArduino, "Failed", Toast.LENGTH_SHORT).show();      
          } 


    return "success";
  } 

2 个答案:

答案 0 :(得分:4)

Toast无法在后台线程中显示,您应该在UI线程中调用它,例如onPostExecute()

答案 1 :(得分:3)

您正在尝试在后台线程上执行UI操作,这是禁止的。

任何UI操作(包括显示Toast)都必须在UI线程中完成。

您可以使用onPostExecute方法显示您的祝酒词:

protected String doInBackground(Void... params) {
    // do your background stuff
} 

protected void onPostExecute (Result result) {
    if (result.equals("200")) {
        Toast.makeText(CallArduino,appliance + " Success ",Toast.LENGTH_LONG).show();    
    }else { 

        Toast.makeText(CallArduino, "Failed", Toast.LENGTH_SHORT).show();      
    } 
}