当用户按下按钮时,我希望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.
为了显示Toast消息,您需要从UI线程调用show()该Toast对象.因此,把你的Toast对象,其中的UI线程运行(例如,在AsyncTask的onPreExecute(),onPostExecute()等等).
我假设您的连接是在一个单独的线程中完成的.
| 归档时间: |
|
| 查看次数: |
6194 次 |
| 最近记录: |