在我的应用程序中,我有很多Web API调用,它返回给我JSON。我想把这件事简单化。我不想在每个片段中创建AsyncTask
。我尝试了很多东西但没有给我解决方法如何做到这一点。我需要一个类解决方案,我在其中调用带有url参数的方法,并获得调用片段或活动的结果。有人可以分享最佳做法吗?
我已经尝试过otto图书馆,但似乎它不符合我的要求。
答案 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对象。