Android Toast.makeText()没有显示出来

Jes*_*sse 1 java android

当用户按下按钮时,我希望Toast.makeText()显示一条小消息Contacting server...,说明应用程序从我的Web服务器获取某些信息时.

问题是Java的HttpClient.Execute()方法是同步的,因此它会阻止Toast显示,直到请求完成.

有没有办法在发送请求时显示Toast?

例如

Toast.makeText(myContext, "Contacting server...", Toast.LENGTH_SHORT).show();
String result = WebServer.Contact("www.mywebsite.com"); //A wrapper method
Toast.makeText(myContext, "Result: " + result, Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)

在代码完成,此代码只是快速闪烁第一个Toast ,然后显示第二个Toast.

Wro*_*lai 6

为了显示Toast消息,您需要从UI线程调用show()Toast对象.因此,把你的Toast对象,其中的UI线程运行(例如,在AsyncTaskonPreExecute(),onPostExecute()等等).

我假设您的连接是在一个单独的线程中完成的.