这里Handler线程队列和ui主线程公用一共。Handler并没有真正的启动一个线程,而是直接调用run方法。
public class Test extends Activity implements OnClickListener {
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
handerHandler.removeMessages(0);
}
private TextView textView1;
public static int add;
private Handler handerHandler = new Handler() {
/*
* (non-Javadoc)
* @see android.os.Handler#handleMessage(android.os.Message)
*/
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
// textView1.setText("add");
textView1.setText(""+add+"");
++add;
removeMessages(0);
sendEmptyMessageDelayed(0, 5000);
Log.e("I AM HANDLER", "I AM TEST>>>>>>>>>>>>>>>>>>>>>>>O");
break;
case 1:
break;
case 3:
break;
case 4:
break;
}
super.handleMessage(msg);
}
};
Runnable testRunnable = new Runnable() {
public void run() {
// 在这个线程里我们发送一个消息给消息队列,发完之后继续执行下面的代码,
// 至于发送的消息的处理由handleMessage处理。这是异步的两个线程,实现了两个线程间的通信
handerHandler.sendEmptyMessage(0);
Log.e("这是一个线程", "》》》》》》》》》》》》》》》》》》》》》》这个线程要打印run");
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
handerHandler.post(testRunnable);
// Message msg = new Message();
// msg.what=0;
// handerHandler.sendMessage(msg);
//这用方法比上面那种Message的获取方法节省内部空间
// Message msg=handerHandler.obtainMessage();
// msg.arg1=0;
// handerHandler.sendMessage(msg);
}