Когда будет запущен метод перекраски формы в LWUIT
Я использовал LWUIT для разработки проекта Xlet в эмуляторе. Проект является многопоточным, когда один из потоков завершает свою работу, затем умирает или просто входит в состояние wain(), вызывается метод отображения формы repaint(), и экран мигает (белый экран в течение времени выстрела, а затем обратно). к нормальной жизни).
Часть кода ниже:
public class LwuitWhiteScreenXlet implements Xlet {
private Image bgImage;
Form form;
Thread thread;
public void destroyXlet(boolean arg0) throws XletStateChangeException {
// TODO Auto-generated method stub
}
public void initXlet(XletContext arg0) throws XletStateChangeException {
form = new Form();
/*Form initialize, code omitted*/
}
public void pauseXlet() {
// TODO Auto-generated method stub
}
public void startXlet() throws XletStateChangeException {
System.out.println("Xlet startXlet START++++++++++++++++++++");
thread = new Thread((new Runnable() {
public void run() {
Image image = null;
try {
image = Image.createImage("/res/arrow.png");
} catch (IOException e) {
e.printStackTrace();
}
Label labelTmp = new AnimatedLabel(image, 3);
}
}));
thread.start();
form.show();
System.out.println("Xlet startXlet END ------------------");
}
}
Кто-нибудь тоже сталкивался с этой проблемой?
1 ответ
Вы заменяете код LWUIT на EDT, что не разрешено и не поддерживается. Я предлагаю посмотреть на реализацию Animation
интерфейс и использование registerAnimated()
в Form
,