AsyncWeiboRunner
ShareActivity中的异步调用
流程图:
[img]http://dl.iteye.com/upload/picture/pic/105125/8661df41-6b5e-39a9-9c1f-8c792e2e70d0.jpg[/img]
public class AsyncWeiboRunner {
private Weibo mWeibo;
public AsyncWeiboRunner(Weibo weibo){
this.mWeibo = weibo;
}
public void request(final Context context,
final String url,
final WeiboParameters params,
final String httpMethod,
final RequestListener listener){
new Thread(){
@Override public void run() {
try {
String resp = mWeibo.request(context, url, params, httpMethod, mWeibo.getAccessToken());
listener.onComplete(resp);
} catch (WeiboException e) {
listener.onError(e);
}
}
}.run();
}
public static interface RequestListener {
public void onComplete(String response);
public void onIOException(IOException e);
public void onError(WeiboException e);
}
}
ShareActivity中的异步调用
private String update(Weibo weibo, String source, String status, String lon, String lat)
throws MalformedURLException, IOException, WeiboException{
WeiboParameters bundle = new WeiboParameters();
bundle.add("source", source);
bundle.add("status", status);
if(!TextUtils.isEmpty(lon)){
bundle.add("lon", lon);
}
if(!TextUtils.isEmpty(lat)){
bundle.add("lat", lat);
}
String rlt = "";
String url = Weibo.SERVER + "statuses/update.json";
AsyncWeiboRunner weiboRunner = new AsyncWeiboRunner(weibo);
weiboRunner.request(this, url, bundle, Utility.HTTPMETHOD_POST, this);
return rlt;
}
public void onComplete(String response) {
Toast.makeText(this, R.string.send_sucess, Toast.LENGTH_LONG);
Log.e("ShareActivity", "response: "+response);
this.finish();
}
流程图:
[img]http://dl.iteye.com/upload/picture/pic/105125/8661df41-6b5e-39a9-9c1f-8c792e2e70d0.jpg[/img]