Autore Topic: terminare un'activity padre, dopo terminazione figlia  (Letto 3182 volte)

Offline noodles

  • Utente junior
  • **
  • Post: 130
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Sistema operativo:
    Mac OS X Snow Leopard
terminare un'activity padre, dopo terminazione figlia
« il: 30 Marzo 2010, 17:15:28 CEST »
0
Ho un'activity X padre che lancia un'activity Y figlia con un intent esplicito con startActivity().
Se l'activity Y esegue una finish(), vorrei che terminasse anche l'activity padre X.

Nella documentazione ho trovato finishFromChild(Activity child).
Ho provato a sovrascriverlo nell'activiy padre X, ma non viene mai chiamata.

Soluzioni?

EDIT:
Un'alternativa c'è, ma non piace, è un po' "sporca".
Potrei far partire l'activity figlia con startActivityForResult(), così quando l'activity filgia muore, viene chiamata nel padre la onActivityResult(), la quale viene chiamata appena dopo la onResume(), quindi ancora prima di visualizzarla a video. Qui chiamo finish() e la uccido.

Però così è proprio brutto...
« Ultima modifica: 30 Marzo 2010, 17:25:17 CEST da noodles »

Offline Agafi

  • Utente normale
  • ***
  • Post: 173
  • Respect: +10
    • svetlana-tomasevschi-perini
    • agafist
    • Mostra profilo
  • Dispositivo Android:
    SE Xperia Neo,LG Optimus One,Asus EEE Pad Transformer,HTC Magic Vodafone
  • Play Store ID:
    Agafi
  • Sistema operativo:
    Win7
Re:terminare un'activity padre, dopo terminazione figlia
« Risposta #1 il: 30 Marzo 2010, 17:51:21 CEST »
0
scusa la domanda è solo per capire meglio il problema...

Il metodo isChild nell'activity Y ti ritorna true e il suo getParent ti ritorna X?

Offline noodles

  • Utente junior
  • **
  • Post: 130
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Sistema operativo:
    Mac OS X Snow Leopard
Re:terminare un'activity padre, dopo terminazione figlia
« Risposta #2 il: 30 Marzo 2010, 18:40:06 CEST »
0
scusa la domanda è solo per capire meglio il problema...

Il metodo isChild nell'activity Y ti ritorna true e il suo getParent ti ritorna X?

Non ci ho proprio fatto caso. Ora guardo e ti dico

Offline noodles

  • Utente junior
  • **
  • Post: 130
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Sistema operativo:
    Mac OS X Snow Leopard
Re:terminare un'activity padre, dopo terminazione figlia
« Risposta #3 il: 30 Marzo 2010, 18:47:05 CEST »
0
bella scoperta!!

isChild mi ritorna false :-[

c'è qualcosa che mi sfugge...

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:terminare un'activity padre, dopo terminazione figlia
« Risposta #4 il: 30 Marzo 2010, 23:56:51 CEST »
0
e se chiami finish dopo aver fatto lo start della seconda?

Offline noodles

  • Utente junior
  • **
  • Post: 130
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Sistema operativo:
    Mac OS X Snow Leopard
Re:terminare un'activity padre, dopo terminazione figlia
« Risposta #5 il: 31 Marzo 2010, 00:34:22 CEST »
0
e se chiami finish dopo aver fatto lo start della seconda?

cioè intendi farla terminare come parte l'intent? no. non lo posso fare, per come ho pensato io la mia app.

Praticamente l'utente deve navigare attraverso delle listview eterogenee gerarchiche, con la possibilità di tornare anche indietro. La terminazione di tutte queste activity deve essere fatta solo quando effettivamente apro un'altra funzionalità della app, diciamo esco dalla modalità navigazione tra liste. E' proprio qui ho la necessità di chiudere in cascata le activity di queste gerarchia.

Se riuscivo a far funzionare la finishFromChild... era perfetto.

Offline Agafi

  • Utente normale
  • ***
  • Post: 173
  • Respect: +10
    • svetlana-tomasevschi-perini
    • agafist
    • Mostra profilo
  • Dispositivo Android:
    SE Xperia Neo,LG Optimus One,Asus EEE Pad Transformer,HTC Magic Vodafone
  • Play Store ID:
    Agafi
  • Sistema operativo:
    Win7
Re:terminare un'activity padre, dopo terminazione figlia
« Risposta #6 il: 31 Marzo 2010, 08:20:24 CEST »
0
purtroppo da quanto ne so l'unico modo per "creare" child activity sia usando il metodo startActivityForResult.....

Offline noodles

  • Utente junior
  • **
  • Post: 130
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Sistema operativo:
    Mac OS X Snow Leopard
Re:terminare un'activity padre, dopo terminazione figlia
« Risposta #7 il: 31 Marzo 2010, 15:05:58 CEST »
0
Sul gruppo di google ufficiale Android Developers, mi hanno risposto che finishFromChild, isChild, getParent... sono metodi che si riferiscono solo all'uso di ActivityGroup e non alle singole Activity.

Da capire quindi se nel mio caso non avessi dovuto usare le ActivityGroup.

mikecurl91

  • Visitatore
Re:terminare un'activity padre, dopo terminazione figlia
« Risposta #8 il: 09 Aprile 2010, 09:21:16 CEST »
0
Sul gruppo di google ufficiale Android Developers, mi hanno risposto che finishFromChild, isChild, getParent... sono metodi che si riferiscono solo all'uso di ActivityGroup e non alle singole Activity.

Da capire quindi se nel mio caso non avessi dovuto usare le ActivityGroup.

Salve.
Ho lo stesso problema, trovata alcuna soluzione?
grazie

Offline noodles

  • Utente junior
  • **
  • Post: 130
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Sistema operativo:
    Mac OS X Snow Leopard
Re:terminare un'activity padre, dopo terminazione figlia
« Risposta #9 il: 09 Aprile 2010, 16:53:53 CEST »
0
per ora no. Ho lasciato l'app con la soluzione usando la startActivityForResult. Più avanti se avrò tempo per migliorare l'app verificherò se c'è un'altra strada.

Se dovessi trovare tu una soluzione ti sarei grato se la postassi qui.