activity UI-tilan tallentaminen ja palauttaminen on tärkeä osa käyttökokemusta. Tällaisissa tapauksissa asiakas odottaa UI-valtion jatkavan kuten ennenkin, kuitenkin kehys purkaa toiminnan ja kaikki siinä läsnä olevat valtiot. Olet saattanut nähdä testauksen aikana, että näytön kierto Nollaa kaikki asiakkaalta kerätyt tiedot. Sama tilanne on silloin, kun käyttäjä painaa vahingossa takaisin-painiketta. Näytön kierto on yksi Androidin lukuisista elinkaarimuutoksista, jotka voivat tuhota ja nollata toiminnan ja aiheuttaa kaiken tiedon katoamisen. Ehdottomasti ei poikkeuksellinen käyttökokemus!
käyttöliittymän tilan tallentamiseksi ja palauttamiseksi ohitan tähän tarkoitukseen kaksi yleisintä menetelmää:
ONSAVEINSTANCESTATE ():
in order to save sates of UI, I over over onSaveInstanceState (Bundle savedInstanceState) and save all the data of the UI in savedInstanceState Bundle.
tätä menetelmää kutsutaan Androidin vanhemmissa versioissa nimellä ennen onStop () (till android 8.0) ja uudemmissa versioissa sitä voidaan kutsua onstopin() jälkeen.
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState (savedInstanceState);
// Save UI state changes to the savedInstanceState.
/ / tämä nippu siirtyy kertarysäykseen, jos prosessi on
/ / lopetettu ja aloitetaan uudelleen.
savedInstanceState.putBoolean (”StringKeyForBoolean”, false);
savedInstanceState.putDouble (”StringKeyForDouble”, 3.4);
savedInstanceState.putintti (”StringKeyForInteger”, 5);
savedInstanceState.putString(”StringKey”,”Folio3/blogi”);
/ / jne.
}
Bundle on lähinnä tapa tallentaa NVP (”Name-Value Pair”) kartta, ja se siirtyy onRestoreInstanceState (), jossa voit sitten poimia arvot näin:
tätä menetelmää kutsutaan onstartin () jälkeen.
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState (savedInstanceState);
// Palauta käyttöliittymän tila savedInstanceState-ohjelmalla.
Var1 = savedInstanceState.getBoolean (”StringKeyForBoolean”, false);
Var2 = savedInstanceState.getDouble (”StringKeyForDouble”);
Var3 = savedInstanceState.getInt (”StringKeyForInteger”);
Var4 = savedInstanceState.getString(”StringKey”);
}
tällä tavalla voit tallentaa kaikki tilat ja muut datamuuttujat, jotka voivat kadota näytön pyörimisessä tai kun nykyinen toiminto siirtyy taustalle. Tallentaminen ja palauttaminen valtioiden UI on hyvä käytäntö android app development.
Huomautus: Kun toiminto luodaan ensimmäistä kertaa, tallennustilapaketissa ei ole tietoja.
Katso tästä oppaasta, jos suunnittelet sovelluksen käynnistämistä.