Android线程例子程序(Thread test application)

public class TestThread extends Activity {
 private Button button_test;
 private Button button2;
 
 private ProgressBar bar;
 private boolean isRunning = false;
 
 MyThread myThread;
 volatile boolean bThreadRun = false;
 int c = Color.BLUE;
  
 MyThread1 myThread1;
 volatile boolean bThreadRun1 = false;
 int c1 = Color.BLUE;
  
 @Override
 public void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.test_thread);

  button_test = (Button)findViewById(R.id.button_test);
  button_test.setOnClickListener(test);
  button_test.setText("Start thread");
  
  button2 = (Button)findViewById(R.id.Button2);
       
        bar = (ProgressBar)findViewById(R.id.progressBar1);
               
        //showResult();
 }
 
 @Override
 public void onStart()
 {
  super.onStart();
  bar.setProgress(0);

  Thread background = new Thread(
    new Runnable()
    {
     public void run()
     {
      try {
       for (int i=0;i<20 && isRunning;i++)
       {
        Thread.sleep(1000);
        handler.sendMessage(handler.obtainMessage());
       }
      }
      catch (Throwable t)
      {
       //Just end the background thread
      }
     }
    }
    );
    
  isRunning = true;
  background.start();
 }
 
 @Override
 public void onStop()
 {
  super.onStop();
  isRunning = false;
 }
  
 //Process the handler
 Handler handler = new Handler(){
  @Override
  public void handleMessage(Message msg)
  {
   bar.incrementProgressBy(5);
  }
 };
 
 private Button.OnClickListener test = new Button.OnClickListener()
 {
  @Override
  public void onClick(View v)
  {
   //Start a custom thread
   if (!bThreadRun)
   {
    myThread = new MyThread();
    myThread.start();
    bThreadRun = true;
    button_test.setText("Stop thread...");
   }
   else
   {
    bThreadRun = false;
    button_test.setText("Start thread");
   }
  }
 };
 
 //Add the handle for myThread
 private Handler myHandler = new Handler()
 {
  public void handleMessage(Message msg)
  {
   switch (msg.what)
   {
    case 1:
     setTitle("test myThread"  + c);
     setTitleColor(c);
     break;
    case 2:
     setTitle("myThread is over.");
     setTitleColor(Color.RED);
     break;
   }
  }
 };
 
 //Add the implement code for MyThread.
 public class MyThread extends Thread
 {
  public MyThread(){}
  
  @Override
  public void start()
  {
   super.start();
  }
  
  @Override
  public void run()
  {
   while (bThreadRun)
   {
    try {
     sleep(100);
     if (c > ((1<<16)-1))
     {
      c = 0;
     }
     else
     {
      c += 100;
     }
     Message message = new Message();
     message.what = 1;
     myHandler.sendMessage(message);
    }
    catch (InterruptedException ex)
    {
     //Do some exception processing.
    }    
   }
   
   Message message1 = new Message();
   message1.what = 2;
   myHandler.sendMessage(message1);
  }  
 }

 //Add the implement code for MyThread1.
 public class MyThread1 implements Runnable{
  @Override public void run()
  {
   while (bThreadRun1)
   {
    try {
     Thread.sleep(500);
     if (c1 > ((1<<31)-1))
     {
      c1 = 0;
     }
     else
     {
      c1 += 100;
     }
 
     Message message = new Message();
     message.what = 1;
     myHandler1.sendMessage(message);
    }
    catch (InterruptedException ex)
    {
     //Do some exception processing.
    } 
   }
   
   Message message1 = new Message();
   message1.what = 2;
   myHandler1.sendMessage(message1);
  }
 }
 
 private Handler myHandler1 = new Handler()
 {  
  public void handleMessage(Message msg)
  {
   switch (msg.what)
   {
    case 1:
     button2.setText("thread1 running..." + c1);
     break;
    case 2:
     button2.setText("thread1 stopped.");
     break;
   }
  }
 };

 public void OnclickBtn2(View btn)
 {
  //Start a custom thread
  if (!bThreadRun1)
  {
   myThread1 = new MyThread1();
   new Thread(myThread1).start();
   bThreadRun1 = true;
  }
  else
  {
   bThreadRun1 = false;
  }
 }
 
 
 public void OnclickBtnBack(View btn)
 {
  //Close this Activity
  TestThread.this.finish();
 }
 
 public void OnclickBtnAsync(View btn)
 {
  Intent v_intent = new Intent();
     v_intent.setClass(TestThread.this, TestAsync.class);
     startActivity(v_intent);
 } 
 
 private void showResult()
 {
  Toast.makeText(TestThread.this, "This is in TestThread activity", Toast.LENGTH_SHORT).show();   
 }
 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值