Tegevuse oleku säilitamine Androidis koos eksemplari oleku salvestamisega

Java

Aktiivseisundi säilitamise mõistmine

Tegevuse oleku salvestamine Androidis võib olla mõnevõrra segane, eriti Androidi SDK platvormi uutele arendajatele. Siin toodud näide demonstreerib lihtsat rakendust, mis tervitab kasutajaid erinevalt olenevalt sellest, kas nad avavad rakenduse esimest korda või naasevad.

Praegune rakendus kuvab aga alati esialgse tervituse, olenemata rakendusest eemale liikumisest. See artikkel juhendab teid tegevuse oleku õigeks salvestamiseks ja taastamiseks, kasutades meetodit „onSaveInstanceState”.

Käsk Kirjeldus
onSaveInstanceState(Bundle outState) Seda meetodit kutsutakse välja enne tegevuse hävitamist, et salvestada kasutajaliidese komponentide olek.
putString(String key, String value) Salvestab stringi väärtuse määratud võtmega komplekti hilisemaks hankimiseks.
getString(String key) Otsib määratud võtme abil komplektist stringi väärtuse.
onRestoreInstanceState(Bundle savedInstanceState) Seda meetodit kutsutakse pärast onStart() kasutajaliidese oleku taastamiseks varem salvestatud komplektist.
setContentView(View view) Määrab tegevuse sisu selgeks vaateks, muutes selle paigutuse juureks.
TextView.setText(String text) Määrab teksti, mida TextView kuvab.
super.onCreate(Bundle savedInstanceState) Kutsub välja superklassi meetodi onCreate(), initsialiseerides tegevuse.

Kuidas salvestada tegevuse olekut Androidis

Kaasasolevates skriptides uurime, kuidas salvestada tegevuse olekut kasutades meetod Androidi arendamisel. Esimene skript demonstreerib tegevuse loomist, mis kuvab tervitussõnumi, mis muutub olenevalt sellest, kas kasutaja avab rakenduse esimest korda või on eemale navigeerinud ja naasnud. Skripti kriitiline osa hõlmab oleku salvestamist kasutades meetod. Kui tegevus on hävitamisel, kutsutakse see meetod kasutajaliidese komponentide oleku salvestamiseks. Salvestame kuvatava teksti TextView kasutades meetod, mis seostab stringi väärtuse määratud võtmega .

Tegevuse taasloomisel meetod kontrollib, kas on olemas salvestatud eksemplari olek. Kui see on olemas, hangib see varem salvestatud teksti, kasutades nuppu meetod ja seab selle tagasi väärtusele . See tagab, et kasutaja näeb sama sõnumit, mida ta nägi enne navigeerimist. Teises skriptis täpsustame seda lähenemisviisi veelgi, lisades onRestoreInstanceState(Bundle savedInstanceState) meetod, mida nimetatakse pärast kasutajaliidese oleku taastamiseks varem salvestatud olekust . See meetod määrab salvestatud teksti otse tagades, et kasutajaliidese olek on järjepidev ja säilib sujuvalt kogu tegevuse taaskäivitamisel.

Oleku säästmise rakendamine Androidi tegevustes

Java Androidi arendus

package com.android.hello;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {
    private TextView mTextView = null;
    private static final String TEXT_VIEW_KEY = "textViewKey";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mTextView = new TextView(this);

        if (savedInstanceState == null) {
            mTextView.setText("Welcome to HelloAndroid!");
        } else {
            mTextView.setText(savedInstanceState.getString(TEXT_VIEW_KEY));
        }
        setContentView(mTextView);
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString(TEXT_VIEW_KEY, mTextView.getText().toString());
    }
}

Andmete püsivuse tagamine Androidi rakendustes

Java Androidi arendus

package com.android.hello;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {
    private TextView mTextView = null;
    private static final String TEXT_VIEW_STATE = "textViewState";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mTextView = new TextView(this);

        if (savedInstanceState != null) {
            mTextView.setText(savedInstanceState.getString(TEXT_VIEW_STATE));
        } else {
            mTextView.setText("Welcome to HelloAndroid!");
        }
        setContentView(mTextView);
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putString(TEXT_VIEW_STATE, mTextView.getText().toString());
    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        mTextView.setText(savedInstanceState.getString(TEXT_VIEW_STATE));
    }
}

Oleku püsivuse tagamine konfiguratsioonimuudatuste ajal

Androidi rakenduste arendamisel on konfiguratsioonimuudatuste, näiteks ekraani pööramise ajal aktiivsuse oleku haldamine ülioluline. Konfiguratsioonimuudatused põhjustavad tegevuste hävitamise ja taasloomise, mis viib ajutiste kasutajaliidese olekute kadumiseni, kui neid ei käsitleta õigesti. Kasutades meetodit kasutades saavad arendajad vajaliku kasutajaliidese olekuteabe salvestada. Seda meetodit kutsutakse välja enne tegevuse hävitamist, võimaldades arendajatel salvestada võtme-väärtuse paare a-sse , säilitades seisundi hilisemaks taastamiseks.

Lisaks on oluline mõista selle rolli klassi Androidi arhitektuurikomponentidest. on loodud kasutajaliidesega seotud andmete salvestamiseks ja haldamiseks elutsükliteadlikult, võimaldades andmetel konfiguratsioonimuudatusi üle elada. Kasutades , saavad arendajad kasutajaliidese kontrollerid nende käsitletavatest andmetest lahti siduda, muutes rakenduse töökindlamaks ja hõlpsamini hooldatavaks. Kombineerimine ViewModel koos pakub terviklikku lahendust tegevuse oleku tõhusaks haldamiseks.

  1. Mis on eesmärk ?
  2. The meetodit kasutatakse tegevuse praeguse kasutajaliidese oleku salvestamiseks enne selle hävitamist.
  3. Kuidas taastada aktiivsuse olekut?
  4. Tegevusoleku saate taastada rakenduses meetodit, kontrollides salvestatud esinemise olekut ja salvestatud väärtuste otsimine.
  5. Mis on a ?
  6. A on võtme-väärtuste paaride kaart, mida kasutatakse andmete edastamiseks tegevuste vahel ja kasutajaliidese oleku salvestamiseks.
  7. Mis on roll riigi juhtimises?
  8. salvestab kasutajaliidesega seotud andmeid elutsükliteadlikult, ellujäädes konfiguratsioonimuudatused.
  9. Kui on helistas?
  10. kutsutakse järgi kui tegevust taaskäivitatakse varem salvestatud olekust.
  11. Kas ma saan kasutada mõlemat ja koos?
  12. Jah, kombineerides koos pakub tugevat lahendust kasutajaliidese oleku haldamiseks konfiguratsioonimuudatuste ajal.
  13. Millised on konfiguratsioonimuudatused Androidis?
  14. Konfiguratsioonimuudatused hõlmavad ekraani pööramist, klaviatuuri saadavust ja keelemuutusi, mis põhjustavad tegevuse uuesti loomise.
  15. Kuidas töötama a ?
  16. salvestab stringi väärtuse a-sse seotud võtmega hilisemaks otsimiseks.

Androidi tegevuse oleku tõhus haldamine on sujuva kasutuskogemuse säilitamiseks hädavajalik, eriti konfiguratsiooni muutmise ajal. Võimendades ja meetodite abil saavad arendajad tagada kasutajaandmete ja kasutajaliidese olekute sujuva säilitamise ja taastamise. See lähenemisviis mitte ainult ei suurenda rakenduse stabiilsust, vaid parandab ka kasutajate rahulolu, pakkudes ühtset ja usaldusväärset liidest.