Autore Topic: Eccezzione quando ruoto lo schermo mentre la ProgressDialog è in esecuzione  (Letto 346 volte)

Offline pcg4m3s

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Sistema operativo:
    Windows 7
Salve,
sto facendo un'applicazione che deve leggere alcuni dati da internet, così ho messo una progressDialog che si visualizza nel frattempo che l'app si collega ad internet per scaricare le informazioni.
Il mio problema è che se ruoto il dispositivo mentre visualizzo la progressDialog mi da la seguente eccezzione:

java.lang.IllegalArgumentException: View not attached to window manager

Consigli?

Ho risolto in questo modo:
@Override
   protected void onDestroy() {
      // TODO Auto-generated method stub
      //se ruoto lo schermo
      if(progressD.isShowing())
         progressD.dismiss();
      super.onDestroy();
   }


« Ultima modifica: 30 Giugno 2013, 17:10:22 CEST da pcg4m3s »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Eccezzione quando ruoto lo schermo mentre la ProgressDialog è in esecuzione
« Risposta #1 il: 01 Luglio 2013, 08:30:21 CEST »
0
Il problema è che in condizioni normali, ogni volta che cambia l'orientazione viene distrutta e ricreata l'activity corrente.

Ci sono diversi approcci per gestire il caso in questione: puoi fare in modo che l'activity non venga distrutta e ricreata (ma dipende dal layout), puoi fare in modo da ritardare il cambio di orientazione sino al termine dell'attività in corso (vale se molto breve), oppure puoi salvarti il riferimento alla dialog poco prima di distruggere l'activity e attaccarlo alla nuova activity una volta creata (non banalissimo, ma più che fattibile).
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store