Display.callSerially()

来源:互联网 发布:javascript创建json 编辑:程序博客网 时间:2024/05/17 06:44

        在MIDP中,所有与用户界面有关的调用都是顺序执行的,如果同时发生,就会放到一个队列里,执行完一个再执行另一个,当调用Display.callSerially(Runnable r)时,他会调用r内部的run()方法,但是他会等到队列中的其他调用都返回后才执行,因此需要所有重绘事件都完成后再做的事情就可以放到run()方法中,并在那些重绘事件的最后面调用Display.callSerially(r)。比如画2帧动画,第二帧要在第一帧确实在手机上画完再执行,那么第二帧的代码可以放到调用r内部的run()方法中。
serviceRepaint是锁住当前线程,用另外的线程执行paint,直到返回再解锁,效率慢而且可能会死锁。
所以有的时候可以用Display.callSerially()代替serviceRepaint().