Sobes.tech
Junior — Middle

Kuriame sistemos ar projekto dalyje paprastai saugomas Bundle objektas?

sobes.tech AI

Atsakymas iš AI

Android'e Bundle objektas paprastai naudojamas duomenims perduoti tarp komponentų (pavyzdžiui, tarp Activity, Fragment ar Service) ir būsenai išsaugoti.

Įprastai, Bundle saugomas:

  • Komponentų gyvenimo ciklo metoduose, pavyzdžiui, onSaveInstanceState(Bundle outState) — Activity ar Fragment būsenos išsaugojimui.
  • Fragment argumentuose per metodą setArguments(Bundle args), perduodant parametrus kuriant.
  • Intent'e, perduodant duomenis tarp Activity naudojant intent.putExtras(Bundle).

Taigi, Bundle nėra saugomas jokioje globalioje vietoje, o perduodamas ir saugomas vietiškai komponentų viduje, dažniausiai gyvenimo ciklo metodų parametruose arba komponentų argumentuose.

Pavyzdys, kaip išsaugoti Activity būseną:

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putString("key", "value");
}

Pavyzdys, kaip perduoti duomenis Fragment'ui:

Bundle args = new Bundle();
args.putInt("userId", 123);
MyFragment fragment = new MyFragment();
fragment.setArguments(args);

Taigi, Bundle paprastai saugomas metodo parametruose arba komponentų argumentuose, o ne atskirame saugykloje.