简洁的计数器(多线程)

public class HandlerTest extends Activity implements OnClickListener {  int count;  static int x=100;  TextView tv ;   myH myHandler;  Button sStart;  Button sStop;  Button sdown;  //方法一  Thread t;  myThread m;    private boolean killMe = false;  public void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.main);   tv = (TextView)findViewById(R.id.tv);   sStart = (Button)findViewById(R.id.sStart);   sStop = (Button)findViewById(R.id.sStop);   sdown = (Button)findViewById(R.id.sStop);      sStart.setOnClickListener(this);   sStop.setOnClickListener(this);   sdown.setOnClickListener(this);         //方法一   myHandler = new myH();   m = new myThread();   t = new Thread(m);   //或者   t = new Thread(r);               System.out.println("activity--->" + Thread.currentThread().getId());   System.out.println("activityname--->" + Thread.currentThread().getName());  }        //方法一开始  class myH extends Handler{

  @Override   public void handleMessage(Message msg) {    // TODO Auto-generated method stub    System.out.println("obj=" + msg.obj);    switch(msg.what){     case 100:      System.out.println("---------");      String yy = (String)msg.obj;      tv.setText(yy);      break;    }    super.handleMessage(msg);   }     }  

 Runnable r = new  Runnable(){      @Override   public void run() {    // TODO Auto-generated method stub     while (!killMe) {                   Message message = new Message();                  message.what = HandlerTest.x;                  message.obj=String.valueOf(count++);                  HandlerTest.this.myHandler.sendMessage(message); //发送一次消息,自动调用上面handler类的handleMessage函数,从而更新view类。                  try {                       Thread.sleep(2000);                  } catch (InterruptedException e) {                       Thread.currentThread().interrupt();                       killRunnable();                  }             }   }   

 };    //或者  class myThread implements Runnable {       public void run() {                        while (!killMe) {                    Message message = new Message();                   message.what = HandlerTest.x;                   message.obj=String.valueOf(count++);                   HandlerTest.this.myHandler.sendMessage(message); //发送一次消息,自动调用上面handler类的handleMessage函数,从而更新view类。                   try {                        Thread.sleep(2000);                   } catch (InterruptedException e) {                        Thread.currentThread().interrupt();                        killRunnable();                   }              }         }    public void killRunnable()      {         killMe = true;      }

   }

  public void killRunnable()     {        killMe = true;     }      @Override  public void onClick(View v) {   // TODO Auto-generated method stub   switch(v.getId()){    case R.id.sStart:     t.start();     break;    case R.id.sStop:     System.out.println("sStop");     myHandler.removeMessages(0);     m.killRunnable();     break;    case R.id.sdown:     break;    }  }

  }

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView
	android:id="@+id/tv"  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
    <Button
    android:id="@+id/sStart" 
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content"  
    android:text="开始计数" 
    />  

    <Button  
    android:id="@+id/sStop" 
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content"  
    android:text="停止计数" 
    />  
    <Button
    android:id="@+id/sdown" 
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content"  
    android:text="开始下载" 
    />
    
</LinearLayout>


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值