除了上面的答案,您还可以为每个异步调用自定义回退,这样对通用异步方法的每次调用都会填充不同的数据,这取决于您在onTaskDone中放置的内容。
Main.FragmentCallback FC= new Main.FragmentCallback(){
@Override
public void onTaskDone(String results) {
localText.setText(results);
}
};
new API_CALL(this.getApplicationContext(), "GET",FC).execute("&Books=" + Main.Books + "&args=" + profile_id);
提醒:我在主活动上使用了接口,这就是为什么“Main”出现的地方,像这样:
public interface FragmentCallback {
public void onTaskDone(String results);
}
我的API执行后像这样:
@Override
protected void onPostExecute(String results) {
Log.i("TASK Result", results);
mFragmentCallback.onTaskDone(results);
}
API构造函数如下所示:
class API_CALL extends AsyncTask<String,Void,String> {
private Main.FragmentCallback mFragmentCallback;
private Context act;
private String method;
public API_CALL(Context ctx, String api_method,Main.FragmentCallback fragmentCallback) {
act=ctx;
method=api_method;
mFragmentCallback = fragmentCallback;
}