Cual usar NavUtils.navigateUpFromSameTask () vs. onBackPressed ()

Tengo dos actividades A y B. La A tiene un ListFragment que utiliza LoaderManager, mientras que la actividad B muestra detalles sobre el elemento seleccionado en el ListFragment de A. Acabo de notar que cuando uso un botón Atrás para volver de B a la A, se conserva la posición en el ListFragment, pero cuando uso el botón arriba (careta del punto izquierdo) en la barra de acción, la actividad A se recrea y por lo tanto se pierde la posición en la vista de lista.

Me gustaría solucionar este problema, pero no estoy seguro de cuál es la mejor manera de hacerlo correctamente.

Se me ocurren estas soluciones:

a) UtilizaronBackPressed()

Reemplace la implementación por defecto para elandroid.R.id.home (el botón de la barra de acción arriba) en la actividad B, y en lugar deNavUtils.navigateUpFromSameTask(this) función llamar alonBackPressed() método de actividad. Lo he probado y funciona.

b) mantener el usoNavUtils.navigateUpFromSameTask(this)

Pero implementa elonSaveInstanceState y restaurar la posición listView duranteonCreate Método del ListFragment utilizado por la actividad A. (No he probado este enfoque todavía)

¿Cuál de estas soluciones es mejor? ¿O hay alguna otra solución (mucho mejor)?

Soluciónuna) Es bastante simple y directo, perosegundo) es probablemente mejor porque eldefecto Se utiliza la implementación de la careta superior.

Cualquier idea es bienvenida. Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta