Могу ли я безопасно отправлять сенсорные события в основную деятельность, вызывая метод onTouch () из другого потока? - PullRequest
1 голос
/ 05 марта 2012

Пожалуйста, скажите мне, является ли этот подход безопасным или что я могу использовать вместо простого потока для безопасной отправки событий касания в мою деятельность с целью тестирования всего триггера потока ведьмы из этого метода 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?
    }
}

1 Ответ

1 голос
/ 05 марта 2012

Используйте одноэлементный класс

Одноэлементная архитектура

...