Poniższy rysunek (z oficjalnego dokumentu ) przedstawia dobrze znany cykl życia działania na Androidzie:
Z drugiej strony, gdy aktywność zostanie zniszczona przez system (na przykład z powodu konieczności odzyskania pamięci), stan aktywności jest czasami automatycznie zapisywany i przywracany za pomocą metod onSaveInstanceState()
i onRestoreInstanceState()
, jak pokazano na poniższym rysunku (również z oficjalnego dokumentu ):
Wiem, że nie zawszeonSaveInstanceState()
jest to wywoływane, gdy działanie ma zostać zniszczone. Na przykład, jeśli zostanie zniszczony, ponieważ użytkownik nacisnął przycisk „Wstecz”, stan aktywności nie zostanie zachowany. Ale w przypadkach, gdy stan jest zapisywany i przywracany i onSaveInstanceState()
/ gdy onRestoreInstanceState()
zostanie wywołany, kiedy dokładnie są wywoływani ?
Na przykład, zgodnie z powyższymi rysunkami, onRestoreInstanceState()
może być wywołany przed onStart()
lub po, onStart()
ale przed onResume()
lub po onResume()
. Podobnie istnieje kilka możliwości dla onSaveInstanceState()
. Kiedy więc są dokładnie nazywani?
W idealnym przypadku chciałbym zobaczyć połączony diagram przedstawiający stany cyklu życia czynności i metody zapisywania / odtwarzania , jeśli takie istnieją.