在J2ME中创建自己的事件

时间:2012-09-24 09:30:55

标签: java web-services asynchronous java-me

我正在创建一个调用webservice async的小应用程序,我想在响应完成时启动加载完成事件以便能够移动到下一个表单

我怎样才能以良好的方式做到这一点?

3 个答案:

答案 0 :(得分:2)

Java中的事件触发需要以下元素

  • 传输有关事件信息的事件类
  • 描述bean如何通知感兴趣的各方的接口,称为侦听器跟踪侦听器的数据结构
  • 添加和删除侦听器的注册方法
  • 触发事件的代码

事件类将扩展java.util.EventObject,如下所示:

public class MyEventClass extends java.util.EventObject {
         //here's the constructor
         public MyEventClass(Object source) {
             super(source);
         }
}

界面看起来像这样:

 public interface MyEventClassListener {
     public void handleMyEventClassEvent(EventObject e);
}

事件源看起来像这样:

public class MyEventSource {
  private List _listeners = new ArrayList();
  public synchronized void addEventListener(MyEventClassListener listener){
     _listeners.add(listener);
  }
  public synchronized void removeEventListener(MyEventClassListener listener){
    _listeners.remove(listener);
  }
  // call this method whenever you want to notify
  //the event listeners of the particular event
  private synchronized void fireEvent(){
    MyEventClass event = new MyEventClass(this);
    Iterator i = _listeners.iterator();
    while(i.hasNext()){
      ((MyEventClassListener) i.next()).handleMyEventClassEvent(event);
    }
  }
}

事件监听器看起来像这样:

public class MyEventListener implements MyEventClassListener {
  // ... code here

  //implement the required method(s) of the interface
  public void handleMyEventClassEvent(EventObject e) {
    // handle the event any way you see fit
  }
}

您需要通过调用其addEventListener方法向MyEventSource对象注册MyEventListener对象。

祝你好运,可以随时与我联系以获取更多详情。

答案 1 :(得分:1)

要在 J2ME 中创建活动,请尝试以下代码:

EventList eventList = (EventList)PIM.getInstance().openPIMList(PIM.EVENT_LIST, PIM.READ_WRITE);

Event event = eventList.createEvent();
...
event.addString(Event.SUMMARY, PIMItem.ATTR_NONE, summary);
...
event.commit();

有关详细信息,请参阅 JSR 75

答案 2 :(得分:0)

我通过创建一个接口并将其交给我的方法解决了这个问题,接口更改了标志布尔值并调用了另一个方法,告诉我它已经完成了工作,所以我可以继续我的工作,还有它正在另一个线程中运行