Którego użyć NavUtils.navigateUpFromSameTask () vs. onBackPressed ()

Mam dwie czynności A i B. A ma ListFragment, który używa LoaderManager, podczas gdy aktywność B pokazuje szczegóły o elemencie wybranym na liście A na liścieFragment. Właśnie zauważyłem, że kiedy używam przycisku Wstecz, aby przejść z B z powrotem do A, pozycja w zachowaniu ListFragment, ale kiedy używam przycisku „w górę” (lewy punkt) w pasku akcji, to działanie A jest odtwarzany, a zatem pozycja w widoku listy jest tracona.

Chciałbym rozwiązać ten problem, ale nie jestem pewien, jak najlepiej to zrobić.

Wymyślam takie rozwiązania:

a) UżyjonBackPressed()

Zastąp domyślną implementację dlaandroid.R.id.home (przycisk paska akcji w górę) w działaniu B i zamiastNavUtils.navigateUpFromSameTask(this) wywołanie funkcjionBackPressed() metoda aktywności. Przetestowałem to i działa.

b) Zachowaj użytkowanieNavUtils.navigateUpFromSameTask(this)

Ale zaimplementujonSaveInstanceState i przywróć pozycję ListView podczasonCreate metoda ListFragment używana przez działanie A. (Nie testowałem jeszcze tego podejścia)

Które z tych rozwiązań jest lepsze? Czy jest jakieś inne (o wiele lepsze) rozwiązanie?

Rozwiązanieza) jest dość prosta i prosta, aleb) jest prawdopodobnie lepszy, ponieważdomyślna stosowana jest implementacja karetki.

Wszelkie pomysły są mile widziane. Dzięki.

questionAnswers(2)

yourAnswerToTheQuestion