CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: Flambert con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: megthebest con ben 4 Thanks ricevuti negli ultimi sette giorni
Utente del mese: megthebest con ben 21 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 4 su 4
Discussione:

Problema con connessione quando prende poco 3G

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Jul 2013
    Messaggi
    8

    Ringraziamenti
    0
    Ringraziato 1 volta in 1 Post
    Predefinito

    Problema con connessione quando prende poco 3G

    Buongiorno a tutti,
    ho un problema che l'applicazione mi va in crash quando l'applicazione è connessa ma prende poco con 3g. E' un po come quando su facebook da errore "Errore nel caricamento delle notizie". Il controllo sulla connettività è il seguente.

     
    1
    2
    public boolean connettivita(){
    3
            ConnectivityManager connec = null;
    4
           
    5
            connec =  (ConnectivityManager)getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
    6
            if ( connec != null){
    7
                NetworkInfo[] info = connec.getAllNetworkInfo();
    8
                if (info != null) 
    9
                    for (int i = 0; i < info.length; i++) 
    10
                        if (info[i].getState() == NetworkInfo.State.CONNECTED){
    11
                            return true;                        
    12
                        }
    13
            }
    14
            return false;
    15
        }
    16


    Successivamente vado a fare nel file php un'interrogazione su un database e nella mia app prendo il risultato tramite Json.

    Funziona tutto bene se la rete è prende bene, ma nel momento in cui prende poco, va in crash. Non posso postare dell'errore del crash perché non so come si fa ad andare a prendere dal cellulare.

    Attendo una vostra risposta

    Cordiali Saluti

    Luca

  2.  
  3. #2
    Androidiano


    Registrato dal
    Apr 2011
    Località
    Lodi
    Messaggi
    256
    Smartphone
    Samsung S2, Nexus 5

    Ringraziamenti
    5
    Ringraziato 32 volte in 31 Posts
    Predefinito

    Hai sicuramente un try/catch prova ad intercettare l'errore (sicuramente sarà di timeout) e gestiscilo con una dialog per l'utente.
    Nik

  4. #3
    Baby Droid


    Registrato dal
    Jul 2013
    Messaggi
    8

    Ringraziamenti
    0
    Ringraziato 1 volta in 1 Post
    Predefinito

    Quote Originariamente inviato da nikita1977 Visualizza il messaggio
    Hai sicuramente un try/catch prova ad intercettare l'errore (sicuramente sarà di timeout) e gestiscilo con una dialog per l'utente.
    Nik
    86
     
    1
    2
        private class LongOperation  extends AsyncTask<String, Void, Void> {
    3
            private String Error = null;
    4
            private ProgressDialog Dialog = new ProgressDialog(InserisciStato.this);
    5
            String result;
    6
            String []stati = null;
    7
            
    8
            protected void onPreExecute() {
    9
                Dialog.setMessage("Please wait..");
    10
                Dialog.show();    
    11
            }
    12
      
    13
            
    14
            @Override
    15
            protected Void doInBackground(String... urls) {
    16
                         result="";
    17
                         InputStream is = null;
    18
                
    19
                    BufferedReader reader=null;
    20
                    try{ 
    21
                   
    22
                    HttpClient httpclient = new DefaultHttpClient();
    23
                    HttpPost httppost = new HttpPost(url);           
    24
                    HttpResponse response = httpclient.execute(httppost);
    25
                    HttpEntity entity = response.getEntity();
    26
                    is = entity.getContent();
    27
                        
    28
                    reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); 
    29
                    StringBuilder sb = new StringBuilder(); 
    30
                    String line = null; 
    31
                    while ((line = reader.readLine()) != null) { 
    32
                        sb.append(line + "\n"); 
    33
                    } 
    34
                    is.close(); 
    35
                    result=sb.toString(); 
    36
                    
    37
                }catch(Exception ex){
    38
                    Error = ex.getMessage();
    39
                }finally{
    40
                    try{
    41
                        reader.close();
    42
                    }catch(Exception ex) {}
    43
                }
    44
                
    45
                return null;
    46
            }
    47
            
    48
            protected void onPostExecute(Void unused) {
    49
               
    50
                Dialog.dismiss();
    51
                  
    52
                if (Error != null) {
    53
                    Spinner spinner = (Spinner)findViewById(R.id.spinner1);
    54
                    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
    55
                            MainActivity.this,
    56
                            R.layout.spinnertext,
    57
                            new String[]{"a","b","c","d","e","f"}
    58
                            );
    59
                    spinner.setAdapter(adapter);
    60
                } else {                    
    61
                    try{
    62
                        JSONArray jArray = new JSONArray(result);
    63
                        stati=new String[jArray.length()];
    64
                        for(int i=0;i<jArray.length();i++){
    65
                            JSONObject json_data = jArray.getJSONObject(i); 
    66
                            stati[i]=json_data.getString("stato");
    67
                        }
    68
                        
    69
                        Spinner spinner = (Spinner)findViewById(R.id.spinner1);
    70
                        
    71
                        ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(
    72
                                MainActivity.this,
    73
                                R.layout.spinnertext,
    74
                                stati 
    75
                                );
    76
                        spinner.setAdapter(adapter2);
    77
                        
    78
                        }catch(JSONException e){
    79
                            
    80
                        } 
    81
                    }
    82
                    
    83
                }
    84
         
    85
        }
    86


    url è il file php che vado a chiamare lo stato.

    Secondo te dove può andare in crash?

    La chiamata la faccio in questo modo

    1
     
    1
    new LongOperation().execute(url);

  5. #4
    Androidiano


    Registrato dal
    Apr 2011
    Località
    Lodi
    Messaggi
    256
    Smartphone
    Samsung S2, Nexus 5

    Ringraziamenti
    5
    Ringraziato 32 volte in 31 Posts
    Predefinito

    Ciao

    in primo luogo dovresti postare il log.cat per capire se effettivamente è un errore di timeout, altrimenti si va per tentativi.

    Se fosse un errore di time out puoi provare cosi:

    Prima di dichiarare l'hhtpclient:

    3
     
    1
    HttpParams httpParams = new BasicHttpParams();
    2
    HttpConnectionParams.setConnectionTimeout(httpParams,50000);
    3
    HttpConnectionParams.setSoTimeout(httpParams, 50000);


    poi dichiari il client passando i parametri
    1
     
    1
    HttpClient httpClient = new DefaultHttpClient(httpParams);


    Modifichi il catch per intercettare il timeout e gestirlo:

    5
     
    1
    } catch (ConnectTimeoutException e) {
    2
            //Metti il tuo codice per gestire l'exception
    3
        } catch (Exception e) {
    4
            e.printStackTrace();
    5
        }



    Un saluto
    Nik
    Vedo tutto attraverso sabbia rossa e deserto...


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy