Что лучше, сделать цикл чтения PHP в Android или цикл в PHP чтения базы данных?

Я делаю приложение в Android, которое должно постоянно читать базу данных, размещенную на моем сервере, мой вопрос, лучше сделать цикл в Android, постоянно читать документ php или просто читать один раз, но документ php делает цикл для получения информации из базы данных?

в андроид студии я просто делаю цикл со сном и читаю документ php. У меня нет кода, потому что я его не сделал, но вот код для соединения с php, просто представьте его в цикле:

    StringRequest conexion = new StringRequest(Request.Method.POST,
Constantes.URL_NombreIcono,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if(response.charAt(response.length() - 1) == '1'){

}
else {
NombreGrupo.setText(response);
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast("No se ha podido conectarse con la base de datos", "l");
}
});
RequestQueue requ = Volley.newRequestQueue(this);
requ.add(conexion);

и код PHP в этом случае выглядит так:

<?php
$con = mysqli_connect('localhost','root','', 'JNDatabase');
if (!$con) {
echo "|Error";
}
else{
$query = "SELECT * FROM Log ORDER BY id DESC LIMIT 1";
$resultado = $con->query($query);

if (!$resultado){
echo "|Error";
}
else {
$row = $resultado->fetch_assoc();
if($row["Realizada"] == 1){
echo $row["Accion"]."|".$row["id"];
}
}
}

?>

В другом случае читаем документ php один раз, но документ php делает цикл, у меня есть код цикла в php:

<?php

ini_set('max_execution_time', 0);

while (true) {
$con = mysqli_connect('localhost','root','', 'JNDatabase');
if (!$con) {
echo "|Error";
}
else{
$query = "SELECT * FROM Log ORDER BY id DESC LIMIT 1";
$resultado = $con->query($query);

if (!$resultado){
echo "|Error";
}
else {
$row = $resultado->fetch_assoc();
if($row["Realizada"] == 1){
echo $row["Accion"]."|".$row["id"];
}
}
}
ob_flush();flush();sleep(1);
}

?>

так что, как вы думаете, лучше, имея в виду, что это приложение для Android, и я должен заботиться о батарее.

PDT: я знаю, что существуют сервисы, такие как Firebase, но я хочу сделать это с моим собственным сервером, вы пытаетесь избежать передачи информации другим компаниям

2

Решение

В Android это зависит от того, что вы будете делать с данными, полученными из вашей базы данных. Но определенно не стоит делать цикл в PHP. Что он будет делать, когда устройство Android отключено? PHP должен получать данные из базы данных (возможно, из кэша) и передавать их на устройство Android по запросу.

Если вы хотите отобразить данные из базы данных в пользовательском интерфейсе и ничего более, вы можете использовать любой цикл или API Handler.postDelayed (). Но было бы неплохо, если вы приостановите свою работу, когда приложение будет закрыто или приостановлено.

Или, если вы хотите выполнить некоторую работу в фоновом режиме, например, хранить данные в SQLite, вы можете использовать AlarmManager или JobScheduler API. Есть список доступных инструментов.

0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector