Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Android] Richieste Volley fuori dall'Activity

    ciao!

    dentro alla mia activity eseguo una richiesta con la libreria volley:
    codice:
    private void sendData(JSONObject jsonObject) {
        if (Utils.checkConnection(this)) {
            pd.show();
            
            RequestQueue queue = Volley.newRequestQueue(this);
            JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, jsonObject,
                    new Response.Listener<JSONObject>() {
                        @Override
                        public void onResponse(JSONObject response) {
                            try {
                                // DO STUFF
                            } catch (JSONException ex) {
                                pd.dismiss();
                                GenericToast.viewToast(getApplicationContext(), ex.getMessage(), Toast.LENGTH_LONG, Gravity.CENTER);
                            }
                            pd.dismiss();
                            GenericToast.viewToast(getApplicationContext(), "DATI INVIATI CORRETTAMENTE", Toast.LENGTH_LONG, Gravity.CENTER);
                        }
                    },
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            pd.dismiss();
                            GenericToast.viewToast(getApplicationContext(), "ERRORE", Toast.LENGTH_LONG, Gravity.CENTER);
                        }
                    }) {
            };
            queue.add(request);
        } else {
            GenericToast.viewToast(getApplicationContext(), "Nessuna connessione disponibile!", Toast.LENGTH_LONG, Gravity.CENTER);
        }
    }
    come vedete avvio un dialog di caricamento, e mostro dei toast a seconda di come finisce l'operazione.

    la domanda, probabilmente banale, è se e come potrei spostare questo codice fuori da un activity.
    perchè magari lo voglio rieseguire in un'altra.
    io non ci sono mai riuscito, incappo sempre in errori, che mi portando sempre al discorso che le operazioni asincrone è meglio effettuarle dall'activity.

    sicuramente sono io che mi sono perso qualche pezzo, ma avete qualche suggerimento?

  2. #2
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,629
    i task asincroni si possono sicuramente chiamare come classe esterna all'activity
    dovresti guardare il debug per capire quale errori riscontri
    per la mia (ammuffita) esperienza spesso sono "Null Point"
    Io ne ho viste cose che voi umani non potreste immaginare. Navi da combattimento in fiamme al largo dei bastioni di Orione e ho visto i raggi B, balenare nel buio vicino le porte di Tannhäuser. E tutti quei momenti ... andranno ... perduti nel tempo, come lacrime nella pioggia. È tempo di morire. (Roy Batty).

  3. #3
    Quote Originariamente inviata da Misterxxx Visualizza il messaggio
    i task asincroni si possono sicuramente chiamare come classe esterna all'activity
    dovresti guardare il debug per capire quale errori riscontri
    per la mia (ammuffita) esperienza spesso sono "Null Point"
    ciao.

    nel caso specifico il problema è quel pd.show().
    lasciando quello nell'activity e spostando il resto, funziona.
    ovviamente passando il giusto Context.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2021 vBulletin Solutions, Inc. All rights reserved.