【发布时间】:2015-05-28 23:46:35
【问题描述】:
我有一个特定的场景,我需要你的帮助。
我正在尝试在 Android 中构建一个涉及网络通信的应用程序。
我正在为 http POST 请求使用 AsyncTask。
我有另一个名为 Proxy 的类(不是一个好的 .. 将被更改),它拥有不同类型的功能(registerUser、setUserName、getUserPermission...)
当然,我有一个 Activity。
我的 Activity 拥有一个 Proxy 类的实例。 我的目标是在活动中按下一个按钮,它将调用 Proxy 类中的一个方法,该方法又调用实际运行 http POST 的 AsyncTask 的 execute() 方法。
我想知道如何从 AsyncTask 的 onPostExecute 获取数据到我的活动。
我的想法是在 AsyncTask 中有一个接口,它将在 Proxy 类中实现,而 Proxy 类中的另一个接口将在我的 Activity 类中实现。
将数据一直滚动到我的 Activity。
我想听听您对这是要走的路还是首选其他方法的想法。
非常感谢您的帮助。
添加一些代码
public class RegisterActivity extends FragmentActivity implements Proxy.OnProxyHttpPostResponseListener {
private Proxy proxy;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
this.proxy = new Proxy();
this.proxy.setHttpPostResponseListener(this);
}
@Override
public void onProxyHttpPostResponse(String response) {
//Do something when http post returns
}
}
public class Proxy {
public interface OnProxyHttpPostResponseListener {
void onProxyHttpPostResponse(String response);
}
private OnProxyHttpPostResponseListener httpPostResponseListener;
public void setHttpPostResponseListener(OnProxyHttpPostResponseListener listener) {
this.httpPostResponseListener = listener;
}
private class HttpPostAsync extends AsyncTask<Pair<String, ArrayList<Pair<String, String>>>, Void, String> {
@Override
protected String doInBackground(Pair<String, ArrayList<Pair<String, String>>>... params) {
return this.httpPost(params[0].first, params[0].second);
}
protected void onPostExecute(String response) {
httpPostResponseListener.onProxyHttpPostResponse(response);
}
}
【问题讨论】:
-
如果可能,您能否向我们展示您现在拥有的任何代码,以帮助我们更好地理解您的问题? :)
标签: java android android-activity android-asynctask http-post