从我的API异步检索数据

时间:2018-03-03 05:54:40

标签: android

在我多次退出之后,我正在重写我的一些代码,并想要从更现代的架构角度(如果需要的话)推动社区向正确的方向发展。

-

我的应用程序所做的一件事就是在点击应用程序中的按钮后发送JSON数据(总共大约15-20个键值对)。

我编写代码以在extends AsyncTask<type here>中使用onPreExecute与我的API进行交互。

我创建了一个进度条,它基本上会阻止带有加载微调器的UI,直到数据发出,然后从API获得确认。 完成后,它将被解雇,用户可以继续,但在少数情况下,我的一些用户抱怨数据很慢,进度条需要一段时间才能消失(整整5-10分钟,这是有趣的)或者永远不会消失。

我相信我在制作微调器方面错了,所以我会废除它并让它在后台运行。

我发现自己比以往任何时候都更加困惑,看似各种各样的方法和框架与几年前没有的API进行交互,所以想在这里问一下希望得到一个更统一/基于社区的响应。

我的问题

它仍然是现代/理想/常见的

方法
  1. 创建一个doInBackground(String... params)
  2. 的班级
  3. 添加您的onPostExecute@Override protected String doInBackground(String... params) { RequestQueue mmRequestQueue = Volley.newRequestQueue(context); StringRequest mmyReq = new StringRequest(Method.POST, "ENDPOINT HERE", new Response.Listener<String>() { @Override public void onResponse(String rawResponse) { JSONObject response = null; try { response = new JSONObject(rawResponse); //do stuff with response here.. } catch(Exception ex) { //logging code here } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { //handle my stuff here } } ) { @Override protected Map<String, String> getParams() { Map<String, String> params = new HashMap<String, String>(); //put my params here, for example: params.put("helloworld", val1); params.put("helloworld2", val2); return params; } }; mmRequestQueue.add(mmyReq); try { Thread.sleep(1000); //not sure why this is even here anymore, I can't recall if this was intentional or not, maybe it was to show the progress bar which I won't be using anymore anyway? } catch (InterruptedException e) { } return ""; } ,{{1}},声明和代码
  4. 使用这样的代码使用Volley与您的API进行交互:
  5. 我的旧代码在下面,不幸的是我已经编写了许多这样的任务(几乎每个我需要进行API调用的情况都有这个大型膨胀文件,遵循以下格式)。

    {{1}}

0 个答案:

没有答案