Autore Topic: Gestione della sessione  (Letto 3617 volte)

Offline mailojah

  • Utente junior
  • **
  • Post: 61
  • Respect: 0
    • Mostra profilo
Gestione della sessione
« il: 26 Luglio 2011, 09:06:55 CEST »
0
Salve ragazzi, vorrei chiedervi un consiglio. Sto realizzando un app che richiede un username e password per l'accesso e vorrei sapere come è possibile salvare l'oggetto utente in sessione in modo da non poter richiedere l'username e password se l'utente vuole accedere al suo profilo. Ovviamente questo oggetto mi servirà in altre activity per prelevare altre informazioni. Ho visto i vari metodi putExtra e getExtra ma non riesco a capire perchè quando utilizzo il Back button perdo l'oggetto!!C'è un modo efficace per mantenere la sessione (se così vogliamo chiamarla per fare un'analogia alle app web) attiva in Android??
Vi ringrazio per la disponibilità.
A presto

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Gestione della sessione
« Risposta #1 il: 26 Luglio 2011, 09:10:26 CEST »
0
potresti tenere un oggetto singleton che abbia una vita lunga quanto una sessione e che è accessibile da qualunque parte del tuo codice, in qualunque intervallo temporale.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline mailojah

  • Utente junior
  • **
  • Post: 61
  • Respect: 0
    • Mostra profilo
Re:Gestione della sessione
« Risposta #2 il: 26 Luglio 2011, 09:14:45 CEST »
0
Io ho trovato un esempio in cui si va a fare l'overriding di onSaveInstanceState(Bundle savedInstanceState) su questo link:

http://stackoverflow.com/questions/151777/how-do-i-save-an-android-applications-state

sembra interessante!Ora lo provo.
7h38ugg3r sai come mettere in pratica il tuo consiglio?Ti ringrazio;)
Fammi sapere se il link è interessante. Ciao

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Gestione della sessione
« Risposta #3 il: 26 Luglio 2011, 09:25:49 CEST »
0
Quì spiega cosa è il singleton: http://programmazione.html.it/guide/lezione/1281/il-singleton/
Quando crei l'istanza del singleton, memorizzi anche il timestamp della creazione.
Quando ne richiedi listanza, se il timestamp_corrente-timestamp_della_creazione è superiore al timeout che hai stabilito, allora devi ricreare l'istanza e non restituire quella corrente.
« Ultima modifica: 26 Luglio 2011, 09:39:55 CEST da 7h38ugg3r »
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline mailojah

  • Utente junior
  • **
  • Post: 61
  • Respect: 0
    • Mostra profilo
Re:Gestione della sessione
« Risposta #4 il: 26 Luglio 2011, 09:33:25 CEST »
0
...a me interessa sapere come salvare e richiedere da qualsiasi activity un determinato oggetto che ho messo in "sessione"...;)
Grazie

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Gestione della sessione
« Risposta #5 il: 26 Luglio 2011, 09:40:33 CEST »
0
scusa, tu sai come funziona un ipotetico oggetto session?
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline mailojah

  • Utente junior
  • **
  • Post: 61
  • Respect: 0
    • Mostra profilo
Re:Gestione della sessione
« Risposta #6 il: 26 Luglio 2011, 09:45:53 CEST »
0
Non capisco perchè ci giariamo intorno..l'esempio che ho postato sembra valido e sto approfondendo questa cosa tramite i Bundle

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +203
    • 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:Gestione della sessione
« Risposta #7 il: 26 Luglio 2011, 10:34:52 CEST »
0
Non sarebbe piu comodo mettere username e password nelle Shared Preferences?
Data Storage | Android Developers
[facile] Semplice esempio di Shared Preferences - Android Developers Italia

Offline mailojah

  • Utente junior
  • **
  • Post: 61
  • Respect: 0
    • Mostra profilo
Re:Gestione della sessione
« Risposta #8 il: 26 Luglio 2011, 10:51:15 CEST »
0
MmM interessante..sembra uno strumento per salvare delle info di configurazione. Si potrebbe adattare...ora lo studio un pò!Grazie
Però sembra strano che non ci sia qlcs per salvare dei dati in sessione. Con i Bundle li salvi solo per una determinata activity....
Bah vedremo...

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Gestione della sessione
« Risposta #9 il: 26 Luglio 2011, 11:00:36 CEST »
0
Però sembra strano che non ci sia qlcs per salvare dei dati in sessione.

Salvataggio dello stato tra più Activity (aka variabili globali in Android) - Android Developers Italia

Devi gestirti tu però la scadenza, oppure aspetti che l'applicazione viene terminata e i dati si perdono.

Altrimenti fai come ti ha consigliato thebugger che è un metodo altrettanto valido.

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Gestione della sessione
« Risposta #10 il: 26 Luglio 2011, 11:08:10 CEST »
0
Non capisco perchè ci giariamo intorno..l'esempio che ho postato sembra valido e sto approfondendo questa cosa tramite i Bundle

non è un girarci intorno....si tratta semplicemente di inserire dei metodi di get/set per le variabili di sessione, in questo oggetto singleton.
Ti chiedevo se sapevi come funzionava, perché l'implementazione sarebbe stata banale.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline mailojah

  • Utente junior
  • **
  • Post: 61
  • Respect: 0
    • Mostra profilo
Re:Gestione della sessione
« Risposta #11 il: 26 Luglio 2011, 11:17:44 CEST »
0
Il problema è che io non so come inserire nella sessione..per il singleton non ci dovrebbero essere problemi

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Gestione della sessione
« Risposta #12 il: 26 Luglio 2011, 11:26:14 CEST »
0
la sessione viene rappresentata dal tuo oggetto.
Al suo interno crei una HashMap (chiave->valore) e implementi un metodo setAttribute e uno getAttribute (come al session di tomcat, per capirci).
questi metodi scrivono sulla map.
quando scade la sessione, quindi devi ricreare l'istanza, svuoti la mappa.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Gestione della sessione
« Risposta #13 il: 26 Luglio 2011, 11:29:46 CEST »
0
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline mailojah

  • Utente junior
  • **
  • Post: 61
  • Respect: 0
    • Mostra profilo
Re:Gestione della sessione
« Risposta #14 il: 26 Luglio 2011, 11:40:34 CEST »
0
Allora facciamo un esempio senò parliamo e non ci capiamo.
Io ho un utente che si logga...mettiamo che il login va a buon fine, voglio salvare nella "sessione" tutti i dati di questo utente in modo che da qualsiasi parte posso accedere alle sue info. Ovviamente se da android l'utente vuole accedere al suo profilo, andrò a controllare queste info per vedere se esiste un utente in sessione così invece di splittarlo all'activity login lo mando direttamente alla sua pagina di profilo. Non so se mi sono spiegato.
Quindi 7h38ugg3r come faresti con il tuo esempio con codice alla mano??Ti ringrazio
Luigi.Arena ho visto questo sempio ma non mi attiramolto. Grazie