Если у вас есть класс SurfaceView, используемый для анимации / игры / ..., у вас есть метод onTouchEvent () и метод рисования / обновления экрана в том же классе.Теперь я хочу просто спать метод onTouchEvent, чтобы он не вызывался + -80 раз в секунду и не загружал процессор (и, следовательно, вызывал задержку).Проблема в том, что если я сплю этот класс, он также перестает рисовать.
** Edit88 Я пытаюсь остановить 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 что-то возвращает, а второй нет.Это говорит мне, что В настоящее время Спящий никогда не ложь?Я до сих пор не разобрался ...?