TO :joy_wind(wind) 能不能给我一个具体的例子啊! 具体是这样的: 在客户端,先弹出一个登陆对话框。从服务器返回的结果在另一个线程中收到,我现在该如何通知登陆对话框返回结果呢?
public class LoginDialog implement MessageListener{//这是你的登录对话框 public void whenMessageReceived(Message m){ //这是重载的MessageListener接口方法,在收到消息时刷新登录对话框。 } }public class Message{ //一些属性 }public interface MessageListener{ public void whenMessageReceived(Message m); }//如果你从服务器接收数据的线程叫ReceiveThread,那么它大概必须要这么写: public class ReceiveThread extends Thread{ public void run(){ //接收数据... if(接收数据成功){ fier } } }
//如果你从服务器接收数据的线程叫ReceiveThread,那么它大概必须要这么写: public class ReceiveThread extends Thread{ List messageListenerList; public void addListener(MessageListener l){ messageListenerList.add(l); } public void run(){ //接收数据... if(接收数据成功){ fireMessage(new Message(消息数据)); } }
发生事件(受到数据)时自动会通知
具体是这样的:
在客户端,先弹出一个登陆对话框。从服务器返回的结果在另一个线程中收到,我现在该如何通知登陆对话框返回结果呢?
public void whenMessageReceived(Message m){
//这是重载的MessageListener接口方法,在收到消息时刷新登录对话框。
}
}public class Message{
//一些属性
}public interface MessageListener{
public void whenMessageReceived(Message m);
}//如果你从服务器接收数据的线程叫ReceiveThread,那么它大概必须要这么写:
public class ReceiveThread extends Thread{ public void run(){
//接收数据...
if(接收数据成功){
fier
}
}
}
public class ReceiveThread extends Thread{
List messageListenerList; public void addListener(MessageListener l){
messageListenerList.add(l);
} public void run(){
//接收数据...
if(接收数据成功){
fireMessage(new Message(消息数据));
}
}
void fireMessage(Message m){
//循环调用messageListenerList中的监听器方法,实现消息传送
messageListenerList[i].whenMessageReceived(m);
}}
我在试一试
在打搅一下。
public void addListener(MessageListener l){
messageListenerList.add(l);
}
什么时间执行啊?????
2。
void fireMessage(Message m){
//循环调用messageListenerList中的监听器方法,实现消息传送
messageListenerList[i].whenMessageReceived(m);
}
中的 该如何循环????再次谢谢
for(int i = 0; i < messageListenerList.size(); i++){
messageListenerList[i].whenMessageReceived(m);
}