Если у вас есть класс SurfaceView, используемый для анимации / игры / ..., у вас есть метод onTouchEvent () и метод рисования / обновления экрана в том же классе.Теперь я хочу просто спать метод onTouchEvent, чтобы он не вызывался + -80 раз в секунду и не загружал процессор (и, следовательно, вызывал задержку).Проблема в том, что если я сплю этот класс, он также перестает рисовать / обновлять / обновлять.Что может быть хорошим решением для этого?
Edit
@tanner, это действительно то, что я пытаюсь, чтобы onTouchEvent () не вызывался слишком часто.моя попытка:
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.d("firstTest",Integer.toString(event.getAction())); //shows up
if (!sleeper.CurrentlySleeping) {
Log.d("2ndTest",Integer.toString(event.getAction())); //not showing up
~~ some calculations and stuff ~~
.
public class TouchSleeper extends Thread {
// If Thread is sleeping or not.
public static Boolean CurrentlySleeping;
public TouchSleeper() {
CurrentlySleeping = false;
this.setPriority(MIN_PRIORITY);
}
@Override
public void run() {
try {
while (true) {
CurrentlySleeping = true;
TouchSleeper.sleep(50);
CurrentlySleeping = false; }
~end~
Сначала фрагмент кода из моего класса SurfaceView.Второй кусок класса / потока, который постоянно меняет логическое значение.Обратите внимание, что мой первый Log.d что-то возвращает, а второй нет.Это говорит мне, что В настоящее время Спящий никогда не ложь?Я до сих пор не разобрался ...?