在我多次退出之后,我正在重写我的一些代码,并想要从更现代的架构角度(如果需要的话)推动社区向正确的方向发展。
-
我的应用程序所做的一件事就是在点击应用程序中的按钮后发送JSON数据(总共大约15-20个键值对)。
我编写代码以在extends AsyncTask<type here>
中使用onPreExecute
与我的API进行交互。
我创建了一个进度条,它基本上会阻止带有加载微调器的UI,直到数据发出,然后从API获得确认。 完成后,它将被解雇,用户可以继续,但在少数情况下,我的一些用户抱怨数据很慢,进度条需要一段时间才能消失(整整5-10分钟,这是有趣的)或者永远不会消失。
我相信我在制作微调器方面错了,所以我会废除它并让它在后台运行。
我发现自己比以往任何时候都更加困惑,看似各种各样的方法和框架与几年前没有的API进行交互,所以想在这里问一下希望得到一个更统一/基于社区的响应。
我的问题
它仍然是现代/理想/常见的
方法doInBackground(String... params)
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}},声明和代码我的旧代码在下面,不幸的是我已经编写了许多这样的任务(几乎每个我需要进行API调用的情况都有这个大型膨胀文件,遵循以下格式)。
{{1}}