所有Web API调用的一个类模式

时间:2014-06-17 07:45:18

标签: android web-services android-asynctask

在我的应用程序中,我有很多Web API调用,它返回给我JSON。我想把这件事简单化。我不想在每个片段中创建AsyncTask。我尝试了很多东西但没有给我解决方法如何做到这一点。我需要一个类解决方案,我在其中调用带有url参数的方法,并获得调用片段或活动的结果。有人可以分享最佳做法吗?

我已经尝试过otto图书馆,但似乎它不符合我的要求。

2 个答案:

答案 0 :(得分:0)

不应在主线程中进行Web通信,因此需要某种线程。我认为AsyncTask是最简单的方法。我建议创建抽象类,实现网络内容,并为子类留下解析输出。像这样:

abstract class DownloadJSON extends AsyncTask<...>{
    DownloadJSON(List<NameValuePair> httpParams){...}
    JSONObject doInBackground(String... urls){... return mJSONObject}
    abstract void onPostExecute(JSONObject json);

}

您可以覆盖doInBackground以进行进一步的背景解析,或只显示onPostExecute中的内容。

答案 1 :(得分:0)

请检查名为Retrofit的图书馆。它将您的REST API转换为Java接口,并具有异步执行请求。它甚至可以将您的JSON响应转换为Java对象。