Autore Topic: android.os.NetworkOnMainThreadException  (Letto 1207 volte)

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
android.os.NetworkOnMainThreadException
« il: 11 Settembre 2012, 14:32:00 CEST »
0
Ho creato una classe che si connette ad un database postgres... quando creo la connessione non mi da nessuna eccezione ma non appena provo ad eseguire una query ricevo l'eccezione "android.os.NetworkOnMainThreadException"... come posso risolvere questo problema?

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:android.os.NetworkOnMainThreadException
« Risposta #2 il: 11 Settembre 2012, 14:34:01 CEST »
0
Hai provato a googolare l'eccezione?  :-)

Ad ogni modo, NetworkOnMainThreadException è abbstanza autoesplicativa: non puoi lanciare una connessione HTTP sul main thread.

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:android.os.NetworkOnMainThreadException
« Risposta #3 il: 11 Settembre 2012, 14:36:34 CEST »
0
quindi dovrei creare un'altra attivita, che venga fatta partire dalla MainActivity?

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:android.os.NetworkOnMainThreadException
« Risposta #4 il: 11 Settembre 2012, 14:43:00 CEST »
0
ma non cambia nulla

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:android.os.NetworkOnMainThreadException
« Risposta #5 il: 11 Settembre 2012, 14:45:19 CEST »
0
Citazione
ma non cambia nulla
Concordo. Infatti non devi eseguire la chiamata HTTP in un'altra Activity, ma in un thread diverso dal main thread (che è una cosa ben diversa).

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:android.os.NetworkOnMainThreadException
« Risposta #6 il: 11 Settembre 2012, 15:02:44 CEST »
0
va bene usare la classe AsyncTask??

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
  • Respect: +49
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:android.os.NetworkOnMainThreadException
« Risposta #7 il: 11 Settembre 2012, 15:03:36 CEST »
0
Si, risulta comoda proprio in casi come questi  :-)

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:android.os.NetworkOnMainThreadException
« Risposta #8 il: 11 Settembre 2012, 15:16:27 CEST »
0
si puo fare in modo che il metodo doInBackground della classe AsyncTask mi restituisca un oggetto di tipo ResultSet?

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:android.os.NetworkOnMainThreadException
« Risposta #9 il: 11 Settembre 2012, 16:55:57 CEST »
0
cancello quello che ho appena detto