Autore Topic: Problema richiamo tra activity salvando stato e passaggio dati  (Letto 414 volte)

Offline jox

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
Problema richiamo tra activity salvando stato e passaggio dati
« il: 04 Novembre 2013, 14:34:41 CET »
0
Ciao ragazzi!sono nuova del forum quindi chiedo scusa per eventuali errori, ho già cercato in rete ma con scarsi risultati.
Vi spiego il problema!
Ho 3 activity. da activityA passo a activityB e da activityB passo a activityC (attraverso button) ora però ho l'esigenza di passare da activityC ad activityA che a sua volta dovrà far ripartire ActivityB e activityB farà partire ActivityC  questo per un numero indefinito di volte.
Riassumendo actA->actB->actC->actA->actB->ActC->actA->actB->ActC...
l'activityA e l'activityC ad ogni chiamata devono essere ripristinate(quindi non riavviate da capo), in pratica devono ripartire dallo stato in cui le ho lasciate.mentre l'activity B ogni volta può essere ricreata.
Per richiamare le activity senza ricrearle utilizzo il flag intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT) che recupera l'activity già presente nell stack. fin qui tutto bene.
il problema è che nel passaggio tra activityB e activityC c'è uno scambio di dati effettuato con get e put extra, la prima volta che si avvia l'applicazione va tutto bene, l'activityB prende una stringa da un arraylist lo mette in putextra, l'activityC lo riceve e setta una textview che appare sullo schermo, (ad esempio "casa") ora activity C chiama activityA, questa chiama activityB attraverso startactivity,activityB estrae un elemento dall'arraylist (ad esempio"albero") ma quando chiama activityC questa avrà come valore nella textview sempre il valore "casa" e non "albero" poichè in pratica non si riaggiorna il getextra dato che l'activity è stata solo ripresa da foreground invece di essere ricreata.
Ho letto che è possibile salvare lo stato di un activity e quindi invece di riprenderla dallo stack la si distugge e ricrea dal punto in cui l'avevi lasciata ma non ho capito come salvare lo stato attraverso onsavedinstance e restoreinstance. mi servirebbe qualcosa che mi riaggiorna l'activityC mantenendo le modifiche,qualcuno sa aiutarmi?non so se sono stata chiara.
« Ultima modifica: 29 Novembre 2013, 00:40:53 CET da jox »