AsyncToken情势,替换普通的Listener情势[Java编程]
本文“AsyncToken情势,替换普通的Listener情势[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
关于一个异步的办法调用,我们需求异步的得到调用后果,普通我们会利用Listener情势,用于监听办法异步伐用的后果.
但利用该办法在实际利用中其实并不机动.
1.因为由于Service的办法很多,大概会招致Listener要监听的事件过量.
2.普通Listenner都是事前设置好监听器,不能在办法调用的历程中机动的增添新的监听器
3.对如发送消息失利再次发送消息这种需求处理睬对比别扭.
以下为利用AsyncToken的利用示例:
Java代码
public void testSendEmail() {
final String address = "badqiu(a)gmail.com";
final String subject = "test";
final String content = "async token test";
//返回的token,包含token.addResponder()用于监听异步办法的履行后果
AsyncToken token = sendAsyncEmail(address,subject,content);
//token可以持续传送给外部,以便表面感爱好的listener监听这个异步办法的履行后果
token.addResponder(new IResponder() {
public void onFault(Exception fault) {
System.out.println("email send fail,cause:"+fault);
//此处可以直接引用address,subject,content,如,我们可以再次发送一次
sendAsyncEmail(address,subject,content);
}
public void onResult(Object result) {
System.out.println("email send success,result:"+result);
}
});
}
public AsyncToken sendAsyncEmail(String address,String subject,String content) {
final AsyncToken token = new AsyncToken();
Thread thread = new Thread(new Runnable() {
public void run() {
try {
//do send email job...
token.setComplete(executeResult); //告诉Responder token履行完
}catch(Exception e) {
token.setFault(e); //告诉Responder token发生错误
}
}
});
thread.start();
return token;
}
如上代码,利用AsyncToken的好处:
1.token可以无限传送,只要对办法的履行后果感爱好,都可以监听办法的履行后果.
2.拥有上下文,还可以引用前面的参数,以履行任务email重发这种任务
3.一个token与一个办法对应,办法调用时你即知道token对应的事件,不需求利用listener情势中的普通用EventType来辨别不现的事件
3.机动转换,也可以将上面的token再转至listener,再由listener以事件的方法派发事件
与Listener的异同:
1.token可以无限传送
2.没有利用事件或是监听差别的办法,listener一班配合需求利用事件,然后由事件举行参数的绑定.
3.listener情势普通是先设置好listener,而AsyncToken可以得到token后再增添监听办法
以上是“AsyncToken情势,替换普通的Listener情势[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |