Lisää
Miten voin siirtää tietoja toimintojen välillä Android-sovelluksessa?
Minulla on skenaario, jossa kirjautumisen jälkeen kirjautumissivun kautta on kirjautumispainike jokaisessa toiminnossa.
Kun napsautan "uloskirjautuminen"-painiketta, annan kirjautuneen käyttäjän "session id"-tunnuksen uloskirjautumiseen. Voisiko joku opastaa minua, miten pidän session id
:n käytettävissä kaikissa activities
-toiminnoissa?
Vaihtoehtoja tälle tapaukselle?
1285
3
Helpoin tapa tehdä tämä olisi siirtää istunnon id uloskirjautumisaktiviteetille
Intent
-tiedotteessa, jota käytät aktiviteetin käynnistämiseen:Käytä tuota intentia seuraavassa aktiviteetissa:
Tarkoitusten docs sisältää lisätietoja (katso osio "Extras").
Intent extran välittäminen on hyvä lähestymistapa, kuten Erich totesi.
Application-objekti on kuitenkin toinen tapa, ja se on joskus helpompi, kun samaa tilaa käsitellään useissa toiminnoissa (toisin kuin jos sitä pitäisi hakea/laittaa joka paikkaan) tai kun on kyse monimutkaisemmista objekteista kuin primitiiveistä ja merkkijonoista.
Voit laajentaa Application-oliota ja asettaa/saada sinne mitä tahansa haluamasi ja käyttää sitä mistä tahansa Activitystä (samassa sovelluksessa) getApplication() -oliolla.
Pidä myös mielessä, että muut lähestymistavat, kuten staattisuus, voivat olla ongelmallisia, koska ne voivat johtaa muistivuotoihin. Application auttaa ratkaisemaan myös tämän.
Yritä toimia seuraavasti:
Luo yksinkertainen "helper" -luokka (tehdas Intentsille), kuten tämä:
Tästä tulee kaikkien Intenttiesi tehdas. Aina kun tarvitset uuden Intentin, luo staattinen tehdasmetodi IntentHelper-luokkaan. Luodaksesi uuden Intentin sinun tulisi vain sanoa se näin:
Aktiviteetissasi. Kun haluat "tallentaa" joitakin tietoja "istuntoon" käytä vain seuraavaa:
Ja lähetä tämä Intent. Kohdeaktiviteetissa kenttäsi on käytettävissä muodossa:
Nyt voimme siis käyttää Intentiä kuten vanhaa istuntoa (kuten servleteissä tai JSP:ssä).