Autore Topic: Riutilizzare le stesse Activity  (Letto 785 volte)

Offline a_droid

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: +5
    • Mostra profilo
Riutilizzare le stesse Activity
« il: 13 Maggio 2012, 23:24:11 CEST »
0
Ciao a tutti,
è la prima volta che scrivo in questo forum.
Sto sviluppando la mia prima applicazione Android, quindi scusatemi se la domanda che sto per farvi vi sembrerà banale.
Vorrei sapere come riutilizzare sempre la stessa copia di una Activity, senza doverne creare un'altra della stessa classe sullo Stack ogni volta che passo su un'altra e poi ritorno a quella di partenza.
Mi spiego meglio:
sono su un'activity di partenza A e voglio andare su un'activity B, quindi creo un nuovo oggetto Intent, richiamo start() e passo alla B.
Adesso abbiamo A e B sullo Stack. Se voglio ritornare su A adesso utilizzo new Intent( A.class, context).start(), e questo creerà una copia della Activity A di partenza sullo stack, lasciando in giro per la memoria tante copie di activity inutli!
C'è un modo per riutilizzare sempre una stessa copia?
Inoltre...è corretto preoccuparsi di questo o devo lasciar fare ad Android?
Bisogna richiamare finish() ogni volta che richiamo un'altra Activity per cercare di distruggere la vecchia?

Grazie a tutti per le eventuali risposte

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Riutilizzare le stesse Activity
« Risposta #1 il: 14 Maggio 2012, 07:56:37 CEST »
+3
Ciao e benvenuto,

Quando crei l'Intent aggiungi il flag:

Codice (Java): [Seleziona]
tuoIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
Ti riapre l'activity di prima se nel manifest non hai aggiunto parametri quali singleInstance, singleTop, ...
Per quanto riguarda il finish() dipende da te, se l'Activity non la usi piu' e' buona cosa fare finish(), in ogni caso il back di default lo fa.

Saluti.
I numeri contano molto di più del seme.

Offline a_droid

  • Nuovo arrivato
  • *
  • Post: 28
  • Respect: +5
    • Mostra profilo
Re:Riutilizzare le stesse Activity
« Risposta #2 il: 14 Maggio 2012, 19:49:38 CEST »
0
Grazie per la risposta

Saluti!

Offline Slash90

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson X10Mini Pro
  • Sistema operativo:
    Mac Osx 10.6.8
Re:Riutilizzare le stesse Activity
« Risposta #3 il: 18 Maggio 2012, 16:12:05 CEST »
0
Utilizzo questa discussione perchè ho un quesito simile da porre.

Viaggio da un'activity A a un'activity B utilizzando lo start activity per caricare B.
Quando sono in B, alla pressione del tasto "back" vorrei tornare all'activity A (o generalmente, da qualsiasi activity, vorrei toranare ad A). Come faccio? Non voglio fare il restart dell'activity, ma riprendere il suo stato da dove avevo lasciato

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Riutilizzare le stesse Activity
« Risposta #4 il: 18 Maggio 2012, 16:22:16 CEST »
0
Sovrascirivi il metodo onBackPressed() delle activity che vuoi che tornino alla tua A.

Dentro il metodo fai startActivity, ti crei un nuovo Intent e setti il flag Intent.FLAG_ACTIVITY_REORDER_TO_FRONT (come sopra).

Dovrebbe riaprirti A.

Saluti.
I numeri contano molto di più del seme.

Offline Phate

  • Utente junior
  • **
  • Post: 123
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy S
  • Sistema operativo:
    Windows 7
Re:Riutilizzare le stesse Activity
« Risposta #5 il: 19 Maggio 2012, 14:06:29 CEST »
0
Mi "intrufolo" qui visto che la mia domanda è attinente...non c'era proprio un flag da inserire nel manifest per specificare che l'activity deve esistere con una sola instanza?Così ci risparmiamo di dover inserire ogni volta quel flag nel codice.

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
  • Respect: +37
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:Riutilizzare le stesse Activity
« Risposta #6 il: 21 Maggio 2012, 08:06:05 CEST »
0
Mi "intrufolo" qui visto che la mia domanda è attinente...non c'era proprio un flag da inserire nel manifest per specificare che l'activity deve esistere con una sola instanza?Così ci risparmiamo di dover inserire ogni volta quel flag nel codice.

Si' c'e' ma io poi ho avuto problemi quando riaprivo l'applicazione, non mi tornava nell'ultima activity... Premetto che era diversi mesi fa quando ero all'inizio.
I numeri contano molto di più del seme.