Я работаю над приложением J2ME, которое должно быть перенесено на телефоны разных производителей.Пока что приложение работает нормально, за исключением Motorola V3 (это единственный телефон Motorola, который я пробовал).
Проблема в том, что когда я запускаю новый поток и когда поток пытается обновитьграфика (вызывая repaint ()), графическая система является стеком.
Немного полезной информации: - Я получаю отображение в конструкторе Midlet и повторно использую его во время жизни приложения.- Есть только один класс, расширяющий Canvas.Каждый рисунок происходит здесь.Когда я хочу перерисовать графику, я вызываю метод repaint (), либо из потока пользовательского интерфейса, либо из другого рабочего потока.Насколько я знаю, каждый поток может получить доступ к интерфейсу без проблем.- Я попытался исправить, где в начале приложения я беру имя запущенного потока (UI) и сохраняю его для дальнейшего использования.Перед вызовом repaint () я проверяю, совпадает ли имя текущего потока с именем потока пользовательского интерфейса.Если это од, то я делаю repaint()
, иначе я делаю:
display.callSerially(new Runnable() {
public void run() {
repaint();
}
});
Можете ли вы указать мне какие-либо особенности реализации Motorola J2ME?Как я могу решить эту проблему с обновлениями пользовательского интерфейса потоков?
Спасибо, Златко