Быстрая загрузка данных из mysql в переработчик

У меня есть приложение для Android, которое загружает данные из php в программу RecycleView и показывает их на картах. Я загружаю больше данных каждый раз, когда скроллер достигает некоторой точки, проблема в том, что он все еще загружает данные довольно медленно, и я не знаю, как это сделать. заставить его загружаться быстрее.

Вот BackgroundTask, который загружает данные

 public class BackgroundTask extends AsyncTask<Void, Void, String> {
String json_url;protected void onPreExecute() {
json_url = "http://website.com/file.php";
}

@Override
protected String doInBackground(Void... params) {

try {
String urlLimit = URLEncoder.encode("limit", "UTF-8") + "=" + URLEncoder.encode(limit+"", "UTF-8") + "&" +
URLEncoder.encode("offset", "UTF-8") + "=" + URLEncoder.encode(offest+"", "UTF-8");

String   data = urlLimit ;URL url = new URL(json_url);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
// if(AgeOn == true) {
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
bufferedWriter.write(data);
bufferedWriter.flush();
//    }
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder = new StringBuilder();while ((JSON_STRING = bufferedReader.readLine()) != null) {

stringBuilder.append(JSON_STRING + "\n");

}

bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return stringBuilder.toString().trim();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "";
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}

@Override
protected void onPostExecute(String result) {
Log.d("results:", result + "");
items = result.split(",:,");
id = new int[items.length / 10];
name = new String[items.length / 10];
lastname = new String[items.length / 10];
date = new String[items.length / 10];List<ListItem> data = new ArrayList<>();

int finish = 0;
int counter = 0;

while (finish < items.length) {
id[counter] = Integer.parseInt(items[finish]);
name[counter] = items[finish + 1];
lastname[counter] = items[finish + 2];
date[counter] = items[finish + 3];

finish = finish + 4;
counter++;

}
}
SetViews();

}

}

после его загрузки он просто вызывает метод, который создает элементы представления переработчика и устанавливает список.

А вот и файл php, который загружает данные

  <?php
header('Content-Type: text/html; charset=utf-8');
$db = new PDO('mysql:host**********=;dbname=*******;charset=utf8mb4',******** , '********');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);$limit =$_POST["limit"];
$offset =$_POST["offset"];$stmt = $db->query("SELECT * FROM appdb LIMIT $limit OFFSET $offset");

$results = $stmt->fetchAll(PDO::FETCH_ASSOC);$out = '';
if (is_array($results) && count($results) > 0)
{
foreach ($results as $sqlRow)
{
$out .= $sqlRow['id'].",:,".$sqlRow['name'].",:,".$sqlRow['lastname'].",:,".$sqlRow['date'].",:,";
}

$out = substr($out, 0, -3);
}
echo $out;?>

Как я могу загрузить данные быстрее?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]