
我有一个每10秒调用一次的Web服务调用,并且应该使用Web服务回复来更新TextVIEw(或每10秒至少显示一条祝酒消息)
但是,UI根本没有更新.
请在下面找到代码.
public class MessagesRequestActivity extends Activity { /** Called when the activity is first created. */ String currentMsg="Default"; @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); //Calling the webservice getMessage(); } public voID getMessage(){ try { SoapObject request = new SoapObject("http://tempuri.org/", "getMessage"); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet = true; envelope.setoutputSoapObject(request); //Web method call httpTransportSE androIDhttpTransport = new httpTransportSE("http://192.168.4.50/WebService.asmx"); androIDhttpTransport.call("http://tempuri.org/"+ "getMessage", envelope); //get the response SoapPrimitive response = (SoapPrimitive)envelope.getResponse(); //the response object can be retrIEved by its name: result.getProperty("objectname"); String message = (String)response.toString(); Toast.makeText(this, message, Toast.LENGTH_LONG).show(); } catch (Exception e) { e.printstacktrace(); } try { Thread.sleep(10000); } catch (InterruptedException e) { // Todo auto-generated catch block e.printstacktrace(); } }}@R_419_6120@:
这是一个AsyncTask的例子
public class TalkToServer extends AsyncTask<String, String, String> {@OverrIDeprotected voID onPreExecute() { super.onPreExecute();}@OverrIDeprotected voID onProgressUpdate(String... values) { super.onProgressUpdate(values);}@OverrIDeprotected String doInBackground(String... params) {//do your work here return something;}@OverrIDeprotected voID onPostExecute(String result) { super.onPostExecute(result); // do something with data here-display it or send to mainactivity}然后,您可以通过调用
TalksToServer varname = new TalkToServer(); //pass parameters if you need to the constructorvarname.execute();Async Docs
Progress Dialog Example
您不想做网络工作或不想在UI线程上调用sleep.如果它是内部类,那么您将可以访问外部类的成员变量.否则,如果要从onPostExecute或其他方法dosBacks doInBackground()更新,请在AsyncTask类中创建构造函数以传递上下文.
总结以上是内存溢出为你收集整理的java-在Android中异步更新UI全部内容,希望文章能够帮你解决java-在Android中异步更新UI所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)