Android Thread 与 Handler
来源:互联网 发布:飞升游戏升级数据 编辑:程序博客网 时间:2024/04/19 22:54
package com.ltc.thread;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.TextView;public class ActivityMain extends Activity { private TextView textView = null;private Button btn = null;private Thread thread = null;private Thread thread2 = null;public Handler handler;/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findVeiws(); setListeners(); } private void findVeiws(){ textView = (TextView)findViewById(R.id.mytextview); btn = (Button)findViewById(R.id.actmain_btn_threadrun); } private void setListeners(){ btn.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View v) {testThread();}}); } private void testThread(){ thread = new Thread(new Runnable() { @Overridepublic void run() {Thread.currentThread();int i = 0;while(i++ < 10){Log.e("LOG", "-------------"+i);Message msg = handler.obtainMessage(); msg.arg1 = i; msg.sendToTarget();try {Thread.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}}}}); thread.start(); handler = new Handler(){ @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub textView.setText(""+msg.arg1); if(msg.arg1 == 1){ thread2 = new Thread(new Runnable() {@Overridepublic void run() {Thread.currentThread();int j = 0;while(j++ < 10){Log.e("aaaaaaaaaaaaa", "j----"+j);try {Thread.sleep(250);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}); thread2.start(); } if(msg.arg1 == 10){ Log.e("bbbbbbbbbbbbbb", "bbbbbbbbbb");// thread2.stop(); } super.handleMessage(msg); } }; }}