【发布时间】:2017-01-16 15:00:12
【问题描述】:
我尝试在我的 Android 应用程序中检索存储在数据库中的表单数据列表。数据库的每一行都包含一些字符串格式的人的个人信息以及该人的图像。我已将图像以 MEDIUMBLOB 格式存储在数据库中。
每当我尝试在我的 Android 应用程序中使用 Volley Library 的 JSONObjectrequest 从我的服务器检索数据时,响应通常很慢。有时仅查看从数据库中检索到的 10 到 12 行就需要超过 1 分钟。 这是我的日志:
D/Volley: [337] BasicNetwork.logSlowRequests: HTTP response for request=<[ ] http://helpclick.ahsanaasim.me/v1/tasksall/johny 0xa3e020c1 NORMAL 1> [lifetime=14740],
我试图寻找一个完美的解决方案,但我找不到任何令人满意的东西。这是我的 Java 代码:
mRequestStartTime = System.currentTimeMillis();
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET,
showUrl2, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
long totalRequestTime = System.currentTimeMillis() - mRequestStartTime;
System.out.println(totalRequestTime);
System.out.println(response.toString());
try { c1++;
System.out.println(c1);
JSONArray incidents = response.getJSONArray("incidents");
for (int i = 0; i < incidents.length(); i++) {
e=0;
JSONObject incident = incidents.getJSONObject(i);
c1++;
id= incident.getString("id");
age = incident.getString("age");
gender = incident.getString("gender");
location = incident.getString("location");
//det= incident.getString("det");
String image=new String();
image = incident.getString("bigimage");
if(image.length()!=0) {
myBitmap = ConvertToImage(image);
Bitmap bitmap= Bitmap.createScaledBitmap(myBitmap,500,500,true);
imgs.add(bitmap);
ages.add(age);
genders.add(gender);
locations.add(location);
ids.add(id);
}
}
if(c1>0) {
System.out.println(ages.size());
Intent intent1 = new Intent(search_buttons_page.this, All_Incidents.class);
startActivity(intent1);
}
}
catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.append(error.getMessage());
}
});
jsonObjectRequest.setRetryPolicy(new DefaultRetryPolicy(
20000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
requestQueue.add(jsonObjectRequest);
如果有人能告诉我性能缓慢的原因以及如何通过对我的源代码进行最少的修改来解决它,那将非常有帮助。
【问题讨论】:
-
数据库中 blob 的范围和平均大小是多少?如果您也从笔记本电脑/台式机获取端点,获取端点是否会变慢?
标签: android mysql json android-volley