проблема с потоками в samsung

 
0
 
Java
ava
Pawl | 27.03.2011, 19:49
Доброго времени суток!
В этом разделе я как-то разместил свой игровой мидлет "Гомоку" и сам потом нашел баг, который не знаю как исправить. На самсунге при использовании в игре подсказки, она (игра) вылетает, если нажать "меню" после победы (неважно чьей). Во время же игры меню работает нормально. На других телефонах (соньке и нокиа) такой баг замечен не был. Подсказка у меня работает так: есть внутренний класс - наследник Thread. В игре создается новый поток, который при вызове подсказки в нужном месте высвечивает мигающий крестик (или нолик). Во внешнем классе - наследнике Canvas есть логическое поле hlp. Когда подсказка вызвана, оно становится true и подсказка мигает, когда ход сделан, оно становится false. Для наглядности приведу код внутреннего класса. Может, я как-то не так организовал работу с потоком?

private class Anime extends Thread {
public void run() {
while(hlp) {
imgInd++;
imgInd %= 2;
try {
Thread.sleep(333);
} catch (InterruptedException e){}
repaint();
}
}
}

Еще раз повторю, что проблема замечена только на Samsung.
Ответы (6)
ava
PiyodaiSiyo | 28.03.2011, 00:38 #
Предлагаю рассмотреть нажатие и отпускание клавиши. Скорее всего проблема там. скажем создать некую логическую переменную(фолс) и после нажатия в кийпрессд на тру, мнгновение выждать слипом, а потом быстро поменять значение(опять фолс).И кийрилизд не использовать.
Я думаю нажатие клавиши интерпретируется как многократное. Был " опытик" smile
ava
Pawl | 29.03.2011, 07:56 #
Цитата (PiyodaiSiyo @ 28.3.2011, 00:38 findReferencedText)
Предлагаю рассмотреть нажатие и отпускание клавиши.

Спасибо, попробую
ava
Pawl | 29.03.2011, 09:26 #
Не помогло...
Дело в том, что меню у меня вызывается не в методе keypressed, а в методе commandAction
ava
oxigen | 29.03.2011, 10:59 #
А с какой ошибкой, то падает?
ava
PiyodaiSiyo | 29.03.2011, 15:08 #
можно отловить этот баг в эмуле. Выставь маленькие промежутки в слипах и следи в аутпуте когда жмешь по командам, думаю обязательно выскочит. А потом дебагером или систем.аут.принтлном
ava
Pawl | 31.03.2011, 09:12 #
Цитата


А с какой ошибкой, то падает?


Ни с какой ошибкой, просто вместо выхода в главное меню выходит вообще из игры.
Цитата


можно отловить этот баг в эмуле


к сожалению, у меня нет эмулятора новых самсунгов, а на встроенном эмуляторе NetBeans 6.9 все работает нормально (как и на эмуляторе Nokia, Wireless и пр.)
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить