-1

问题很简单。实际上,当我尝试敬酒时,它没有显示出来。你能指导我解决这个问题吗?

  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";
  } 
4

2 回答 2

4

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

于 2012-12-07T15:04:09.500 回答
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();      
    } 
}
于 2012-12-07T15:03:48.337 回答