andengine: вызов в updatethread останавливает поток пользовательского интерфейса / анимацию - PullRequest
0 голосов
/ 03 марта 2012

Я пытаюсь построить свой первый проект с помощью двигателя.пока все работает нормально, но у меня проблема с моделью потоков.Насколько я знаю, в потоке обновлений должны выполняться вычисления, чтобы пользовательский интерфейс не зависал.Таким образом, чтобы убедиться, что мои вычисления действительно выполняются в updatethread, я создал фиктивный метод с циклом for, чтобы проверить, зависает ли экран и, к сожалению, это происходит.так вот мой тестовый код:

вот как я инициализирую сцену:

private void init() {
        engine.registerUpdateHandler(new IUpdateHandler() {

        @Override
        public void onUpdate(final float pSecondsElapsed) {
            gamemodel.test();
        }

        @Override
        public void reset() {
        }

    });

gamemodel это объект из этого класса:

public class Game {

    public void test() {
       for(int i=0;i<100000000;++i) {
       }
    }

}

Я тоже пробовалдля вызова метода test внутри engine.runOnUpdateThread, но он также не работалнить.Так что же здесь происходит на самом деле и каково решение?

1 Ответ

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

, как я обнаружил, регистрируя обработчик обновлений, просто означает, что обработчик обновлений запускается при следующем вызове метода обновления андегина. если вы хотите запустить метод асинхронно, вы должны выполнить асинхронную задачу или что-то подобное.

...