| 网站首页 | 无线增值 | 软件下载 | 电信 | 手机 | 手机游戏 | 手机软件 | 手机电子书 | 网中游论坛 | CP.SP论坛 | 网站投稿 | 
您现在的位置: CP.SP论坛 >> 无线增值 >> 技术文章 >> J2ME技术 >> 文章正文 用户登录 新用户注册
J2ME中的事件处理         ★★★ 【字体:
J2ME中的事件处理
作者:未知    文章来源:转载    点击数:    更新时间:2008-1-30    

 

译者:Rocks

译者按:下面翻译自MIDP2.0 API文档,希望有助于大家理解MIDlet的运行机制。

用户的交互产生事件,然后MIDP实现把这些事件采用对应的回调方法来通知应用程序。有四大类UI回调方法:

* 抽象的命令,这是高层界面API的一部分
* 单个按键按下和释放的底层事件(如果触摸点设备可用的话,那么还包括触摸点事件)
* 回调Canvas类的paint()方法
* 由Display类的callSerially()方法引发的,对Runnable.run()方法的回调

所有的UI回调方法都是序列化的,所以它们绝不会并行发生。也就是,任何MIDP实现都不能在前一个回调未返回的情况下调用另外一个回调。这个性质确保了当一个事件发出的时候,它的前一个事件肯定已经处理完成。如果有多个未处理的UI回调,那么只要前一个UI回调返回了,下一个就会紧接着被调用。MIDP实现同时也要保证,使用callSerially()方法引发的run()方法要在所有未处理的repaint请求都得到满足之后才被调用。

但在回调的序列规则中有一个特例,就是当Canvas.serviceRepaint()方法被调用的时候。这个方法导致Canvas.paint()方法被立即调用,并会等待直到该方法运行结束。即使serviceRepaint的调用者本身就在一个回调中也一样。以后会对这个问题进一步讨论。

下面这些回调方法都是序列化执行的:

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
由Display.callSerially引发的Runnable.run

记住定时器(Timer)事件并非UI事件,定时器的回调方法是可以和UI事件回调方法同时调用的,不过同一个Timer对象中的多个TimerTask则是序列化调用的。如果应用程序使用了定时器,那么当定时器事件回调和UI事件回调同时发生时,应用程序必须自己确保其数据结构的安全。应用程序也可以选择使用Display.callSerially()方法来把定时器事件序列化到UI事件队列中去以避免同步问题。

文章录入:十月    责任编辑:十月 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    J2ME 记录管理系统/设备数据
    基于Nokia手机的移动游戏开发
    了解J2ME在实际开发中的可选
    如何使用J2ME中的线程
    J2ME播放声音的几个问题(nok
    初识RMS(Record Management 
    J2me开发中使用泛型和基本类
    j2me实现图片透明效果
    信元诚聘IVR产品经理
    上海美峰数码高薪招聘J2ME开
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)