java.lang.IllegalThreadStateException: Thread already started.

本文介绍了一个自定义线程类MyThread的实现,该类继承自Thread,用于在Android环境下绘制交替变化颜色的矩形,并在画布上显示经过的时间。通过控制线程的运行状态,实现了每秒更新一次画面的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

class MyThread extends Thread{
       private SurfaceHolder holder;
       public boolean isRun ;
       float radius = 10f;
       Paint p;
       public MyThread(SurfaceHolder holder)
       {
           this.holder =holder; 
           isRun = true;
           p = new Paint();
       }
       
       public void run(){
           int count = 0;
           while(isRun)
           {
               Canvas c = null;
               try{
                   synchronized (holder){
                       c = holder.lockCanvas();
                       c.drawColor(Color.BLACK);
                       if(count % 2 == 0)
                           p.setColor(Color.RED);
                       else
                           p.setColor(Color.YELLOW);
                       Rect r = new Rect(100, 50, 300, 250);
                       c.drawRect(r, p);
                       c.drawText("这是第"+(count++)+"秒", 100, 310, p);
                       Thread.sleep(1000);
                   }
               }catch(Exception e){
                   e.printStackTrace();
               }finally{
                   if(c!= null)
                       holder.unlockCanvasAndPost(c);
               }
           }
       }
   }

 

REFERENES:http://www.myexception.cn/j2se/1623.html

http://www.myexception.cn/j2se/java.lang.IllegalThreadStateException.html

http://blog.sina.com.cn/s/blog_4550f3ca0101a9kz.html

http://www.eoeandroid.com/forum.php?mod=viewthread&tid=175140

http://ultrablog.sinaapp.com/printthread.php?t=26

http://blog.youkuaiyun.com/liuhanhan512/article/details/7575386

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值