源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

android使用handler ui线程和子线程通讯更新ui示例

  • 时间:2021-06-09 01:08 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:android使用handler ui线程和子线程通讯更新ui示例
[u]复制代码[/u] 代码如下:
package com.act262.sockettx; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; /**  * 可以在其他线程中获取View类的数据,但是不能修改或者设置View类的数据  *  */ public class Main extends Activity {     TextView result = null;     EditText get = null;     Button update = null;     Handler handler;     public void onCreate(Bundle bundle) {         super.onCreate(bundle);         setContentView(R.layout.main);         result = (TextView) findViewById(R.id.result);         update = (Button) findViewById(R.id.update);         get = (EditText) findViewById(R.id.get);         handler = new Handler() {             public void handleMessage(Message msg) {                 if (msg.what == 1) {                     result.setText("after update ui "                             + msg.getData().getString("data")                             + "  \nman thread : "                             + Thread.currentThread().getName());                 }             }         };         result.setText("before update ui  main thread : "                 + Thread.currentThread().toString());         update.setOnClickListener(new OnClickListener() {             @Override             public void onClick(View v) {                 // TODO Auto-generated method stub                 new MyThread("my thread").start();             }         });     }     class MyThread extends Thread {         public MyThread(String name) {             super(name);         }         @Override         public void run() {             // 发送不带数据的消息             // handler.sendEmptyMessage(1);             // 发送附带数据的消息             Message msg = new Message();             Bundle data = new Bundle();             data.putString("data", get.getText().toString() + " my thread:  "                     + Thread.currentThread().getName());             msg.setData(data);             msg.what = 1;             handler.sendMessage(msg);         }     } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部