如何使用可运行的实现获取调用线程的对象



你好,我有一个关于代码的问题。正如您在下面看到的,我在OnDraw()方法下有r.getBlink()。是否有一个函数可以确定"s"线程是否调用OnDraw()。我的意思是我试过这个.getClass().getBlink(),但它显示为一个错误。请帮忙。

     public class main extends Activity {
          @Override
          public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(new BitmapView(this));
          }
    }
    class BitmapView extends View implements OnTouchListener{
          Circle r = new Circle();
          Circle s = new Circle();
          public BitmapView(Context context) {
          super(context);
                  this.setOnTouchListener(this);
          r.starter();
          s.starter();
}
public void onDraw(Canvas canvas){
    Paint paint = new Paint();
    if (r.getBlink()==true){
        paint.setColor(Color.YELLOW);
        r.setBlink(false);
    }
    else{
        paint.setColor(Color.BLACK);
        r.setBlink(true);
    }
    paint.setStyle(Paint.Style.FILL);
    canvas.drawCircle(r.getX(), r.getY(), 15, paint);
    invalidate();
 }
 class Circle implements Runnable{
    Random rnd=new Random();
    int x=rnd.nextInt(200), y=rnd.nextInt(200);
    boolean blink = false;
    public int getX(){  return this.x;  }
    public int getY(){  return this.y;  }
    public boolean getBlink() { return this.blink;  }
    public void setBlink(boolean b) { this.blink=b;  }
    public void starter(){
       Thread running=new Thread(this);
       running.start();
       x=rnd.nextInt(200);
       y=rnd.nextInt(200);
   }
   public void run(){
      while(true){
         try {
           Thread.sleep(rnd.nextInt(2000));
         } catch (Exception ex) {ex.printStackTrace();}
      }
   }
}
Thread.currentThread().get Name();

-此方法将为您提供当前正在执行的线程对象的名称。我相信这就是你想要的。

最新更新