我正在创建一个调用webservice async的小应用程序,我想在响应完成时启动加载完成事件以便能够移动到下一个表单
我怎样才能以良好的方式做到这一点?
答案 0 :(得分:2)
Java中的事件触发需要以下元素
事件类将扩展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)
我通过创建一个接口并将其交给我的方法解决了这个问题,接口更改了标志布尔值并调用了另一个方法,告诉我它已经完成了工作,所以我可以继续我的工作,还有它正在另一个线程中运行