• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pobieranie danych z bazy - opóźnione wyświetlanie

Object Storage Arubacloud
0 głosów
410 wizyt
pytanie zadane 4 sierpnia 2017 w Java przez Spektral Początkujący (410 p.)
Witam.
Piszę aplikację mobilną, pobierającą z bazy danych dane, które będą prezentowane w generowanym przez Jave layout'cie.

Mam następujący problem:
Po kliknięciu na przycisk, którego zadaniem jest przejście do nowego Activity i wyświetlenie tam danych z bazy, dopiero po około 1s dane są wypisywane i wygląda to nie za dobrze. Czy można jakoś rozwiązać ten problem?
Do komunikacji z bazą danych używam plików PHP oraz formatu JSON.

 

Z góry dziękuje za pomoc.
komentarz 4 sierpnia 2017 przez rafal.budzis Szeryf (85,260 p.)
Wszystko zależy od rodzaju bazy danych (Jeśli PHP zakładam ze MySQL ?) oraz formatu tych danych na zapytaniu kończąc. Optymalizacja baz danych to bardzo obszerne zagadnienie. Pokaż nam strukturę bazy danych  i kod a podpowiemy ;)
komentarz 4 sierpnia 2017 przez Spektral Początkujący (410 p.)
Tak, korzystam z bazy MySQL na hostingu CBA.
Kod:

<?php
      $number = $_POST["number"];

    $response = array();
    $response["success"] = false;
    $connection = @new mysqli("xxxxxxx", "xxxxxx", "xxxxxxx", "xxxxxx");
    
    if($result = @$connection ->query("SELECT NAME FROM tools WHERE ID='$number'"))
            {
                $row= $result->fetch_assoc();
                $response["success"]        = true;
                $response["name"]           = $row["NAME"];
                
            }
    
    
    echo json_encode($response, JSON_HEX_TAG|JSON_HEX_APOS|JSON_HEX_QUOT|JSON_HEX_AMP);
    
?>
public class AdminListToolsRequest extends StringRequest {
    private static final String ADMIN_LIST_TOOLS_REQUEST_URL = "http://xxxxxx.php";
    private Map<String, String> params;

    public AdminListToolsRequest(int number, Response.Listener<String> listener) {
        super(Method.POST, ADMIN_LIST_TOOLS_REQUEST_URL, listener, null);
        params = new HashMap<>();
        params.put("number", number + "");
    }

    @Override
    public Map<String, String> getParams() {
        return params;
    }



public class AdminListToolsActivity extends AppCompatActivity {


    int number = 5;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_admin_list_tools);

        Response.Listener<String> responseListener = new Response.Listener<String>() {
            @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
            @Override
            public void onResponse(String response) {


                try {
                    JSONObject jsonResponse = new JSONObject(response);
                    boolean success = jsonResponse.getBoolean("success");
                    String Name = jsonResponse.getString("name");



                    if(success)
                    {
                        LinearLayout layout = (LinearLayout) findViewById(R.id.lineLayout);
                        TextView top = new TextView(AdminListToolsActivity.this);
                        top.setId(R.id.etTop);
                        top.setLayoutParams(new LinearLayout.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.WRAP_CONTENT));
                        top.setText(Name);
                        top.setTextSize(50);
                        layout.addView(top);
                    }       



        

                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        };


        AdminListToolsRequest AdminListToolsRequest = new AdminListToolsRequest(number, responseListener);
        RequestQueue queue = Volley.newRequestQueue(AdminListToolsActivity.this);
        queue.add(AdminListToolsRequest);





    }
}

komentarz 5 sierpnia 2017 przez rafal.budzis Szeryf (85,260 p.)
CBA to dosyć wolny hosting może dlatego ?

Próbowałeś otworzyć tą stronę przez przeglądarkę? Wczytywała się szybko ?

Zapomniałeś o strukturze tabeli oraz ilości przechowywanych danych. Jeśli masz możliwość zalogowania się do phpMyAdmin skorzystaj z zakładki eksport i wrzuć pliczek sql na pastebin np ;)

Testowo postaw sobie np WAMP server i uruchom ten kod PHP u siebie lokalnie wtedy będziesz miał pewność co się dzieje.
komentarz 5 sierpnia 2017 przez Spektral Początkujący (410 p.)
Otwierając tę stronę w przegladarce faktycznie ładuje się wolno, więc możliwe że to przez hosting.

Próbowałem użyć localhosta (XAMPP), ale zmiana URL na odpowiedni, powoduje brak reakcji-połączenia, mimo podłączonego telefonu przez kabel USB.

 

Co do bazy danych zawiera ona 2 kolumny: ID oraz NAME i 10 rekordów. Niestety jestem na telefonie i nie jestem wstanie wstawić kodu.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 597 wizyt
0 głosów
1 odpowiedź 152 wizyt
pytanie zadane 30 listopada 2018 w Java przez Virius Początkujący (490 p.)
0 głosów
1 odpowiedź 167 wizyt
pytanie zadane 19 lutego 2020 w Android, Swift, Symbian przez Virius Początkujący (490 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...