Вторая активность в моем проекте начинается очень медленно, и я не знаю, как это исправить. Как это работает (все это находится в OnCreate()): во-первых, это получить-запрос на страницу с JSON:android - slow start new Активность
try {
DefaultHttpClient hc = new DefaultHttpClient();
ResponseHandler<String> res = new BasicResponseHandler();
HttpGet getMethod = new HttpGet(url);
String response = hc.execute(getMethod, res);
resStr = response.toString();
} catch (Exception e) {
System.out.println("Exp=" + e);
}
Я знаю, некоторые методы из здесь осуждаются, но я не знаю, как сделать его более оптимизировано. В результате он возвращает строку с массивом JSON около 32 объектов. Затем я заполняю 6 массивов, чтобы передать их в ArrayAdapter для заполнения ListView. Методы получения различных типов данных выглядит следующим образом:
public static String GetWantedType(String resStr, int num) {
String jsonvalues = "";
try {
JSONArray json_Array = new JSONArray(resStr);
JSONObject json_data = json_Array.getJSONObject(num);
jsonvalues = json_data.getString("wanted_type");
} catch (JSONException e) {
e.printStackTrace();
}
return jsonvalues;
}
Может быть, я должен был создать json_Array один раз вне заполнения массивов и просто передать его тем методам, как JSONArray, а не в виде строки - я не знаю, если это влияет на скорость. В ArrayAdapter все, кажется, все в порядке, я использую ViewHolder, и моя прокрутка превосходна. В отличие от начального действия.
Как сделать его лучше и более оптимизированным?
Выполняйте всю работу, связанную с сетью, в фоновом режиме. –
Вы добавили код в первый раз? – Pavya