在Android里,只允许UI线程修改Activity里的UI组件。
Handler类的作用主要有两个:
(1)在新启动的线程里发送消息。
(2)在主线程中获取、处理消息。
1 package com.gnnuit.handlertest; 2 3 import android.os.Bundle; 4 import android.os.Handler; 5 import android.os.Message; 6 import android.app.Activity; 7 import android.widget.TextView; 8 9 public class MainActivity extends Activity { 10 private static TextView tvShow; 11 // 1 .创建出来handler 要求必须在主线程里面创建 12 private static Handler handler = new Handler() { 13 // 主线程处理消息 调用的方法 14 @Override 15 public void handleMessage(Message msg) { 16 int count = (Integer) msg.obj; 17 tvShow.setText(count + ""); 18 super.handleMessage(msg); 19 } 20 21 }; 22 23 @Override 24 protected void onCreate(Bundle savedInstanceState) { 25 super.onCreate(savedInstanceState); 26 setContentView(R.layout.activity_main); 27 tvShow = (TextView) this.findViewById(R.id.tv_show); 28 29 new Thread() { 30 31 @Override 32 public void run() { 33 for (int i = 0; i < 100; i++) { 34 try { 35 sleep(500); 36 } catch (Exception e) { 37 38 } 39 Message msg = new Message(); 40 msg.obj = i; 41 handler.sendMessage(msg); 42 } 43 super.run(); 44 } 45 }.start(); 46 } 47 48 49 }