2012-03-05 14 views
1

このアプローチが安全であるかどうか、つまり、onTouch()メソッドからトリガされるフローウィジット全体をテストする目的で、タッチイベントを自分のアクティビティに安全にディスパッチするプレーンスレッドの代わりに使用できるものがあるかどうか教えてください。シングルトンクラスの他のスレッドからonTouch()メソッドを呼び出して、タッチイベントをメインアクティビティに安全にディスパッチできますか?

//this is the thread which fires Touch Events to my main activity 
public class Monkey extends Thread { 

    Run r; 
    float x,y; 
    public Monkey (Run a) 
    { 
     r = a; 
    } 

    public void run() 
    { 
     int i = 0; 
     while(i<10000) 

     { 
      r.onTouch(r.geView(), 
       MotionEvent.obtain(SystemClock.uptimeMillis(), 
       SystemClock.uptimeMillis(), 2, x++, y++, 0)); 
     } 
    } 
} 

// and this is the main activity 
public class Run extends Activity implements OnTouchListener{ 
    private GLSurfaceView glSurface; 

    public View geView() 
    { 
     return glSurface; 
    } 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     glSurface = new GLSurfaceView(this); 
     glSurface.setOnTouchListener(this); 
     setContentView(glSurface); 
     m = new Monkey(this); 
    } 

    public boolean onTouch(View v, MotionEvent event) 
    { 
     //if from here i make other calls to classes that update my glsurface will my application eventualy crash? 
    } 
} 

答えて

関連する問題