浏览 2881 次
锁定老帖子 主题:j2me的UI回调机制
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-12-17
最后修改:2010-01-26
用户交互会产生事件,虚拟机通过回调相应的方法将事件通知到应用程序。UI中的回调方法有以下几种: (1) High-Level API中的抽象命令; (2) Low-Level API中的按键和触屏事件(keyPressed、keyReleased等); (3) Canvas中的paint()方法; (4) 通过Canvas的callSerially()方法请求执行的Runnable接口; 所有的UI回调方法都是顺序执行的,它们永远都不会并行。虚拟机永远不会在一个回调方法返回前调用其他回调方法。这个特性可以很好的保证旧的事件在新事件被传递之前完成。如果多个回调都在等待执行,则后一个回调会在前一个回调返回后尽可能快的被执行。 前面的警告的原因已经很清楚了,如果commandAction()方法因被网络连接操作阻塞而无法返回,则其他回调方法都会因此阻塞。 实际开发中,回调方法应被保证尽可能快的返回,不在其中执行可能阻塞或需要大量运行时间的操作,这样才能保证事件处理的流畅度。 如下的方法都是UI中的回调方法: Canvas.hideNotify Canvas.keyPressed Canvas.keyRepeated Canvas.keyReleased Canvas.paint Canvas.pointerDragged Canvas.pointerPressed Canvas.pointerReleased Canvas.showNotify Canvas.sizeChanged CommandListener.commandAction CustomItem.getMinContentHeight CustomItem.getMinContentWidth CustomItem.getPrefContentHeight CustomItem.getPrefContentWidth CustomItem.hideNotify CustomItem.keyPressed CustomItem.keyRepeated CustomItem.keyReleased CustomItem.paint CustomItem.pointerDragged CustomItem.pointerPressed CustomItem.pointerReleased CustomItem.showNotify CustomItem.sizeChanged CustomItem.traverse CustomItem.traverseOut Displayable.sizeChanged ItemCommandListener.commandAction ItemStateListener.itemStateChanged Runnable.run resulting from a call to Display.callSerially 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-09-13
最后修改:2010-09-13
j2me doc(eclipse 中代码提示信息都为null了)在sun的网站上找了半天也没找到,最近学习j2me,觉得官方提供的文档太少了。
|
|
返回顶楼 | |
发表时间:2010-09-14
Nokia网站上有完整的文档。
|
|
返回顶楼 | |