Estoy intentando guardar una subclase ListFragment en un cambio de orientación, así que agregué setRetainInstance (true) al final de mi función onCreate. Agregué un método onSaveInstanceState para agregar todos sus datos a un paquete, luego agregué código en onActivityCreated para cargar esos datos nuevamente. Lamentablemente, no funcionaría.setRetainInstance no funciona para ListFragment cuando se utiliza la biblioteca compatibiltiy
Cuando agregué algunos mensajes de depuración con la ayuda de Log.d descubrí que no solo no se llamaba onSaveInstanceState, sino que onCreate was (que la documentación parece indicar que no debería suceder cuando retenInstance es verdadero). Ni onCreate ni onActivityCreated tienen paquetes con mis datos (insuperablemente).
Supongo que esto puede ser un problema con la biblioteca de compatibilidad, aunque no tengo un dispositivo Android 3.0+ para probar esto.
Se agradece cualquier ayuda y puedo publicar algunos fragmentos de código si es necesario, aunque no estoy haciendo nada complicado.
Actualización: OnDestroy no está siendo llamada cuando cambio de orientación (que es como debe ser), por lo que parece que algunos de setRetainInstance está trabajando
Sugeriría depurar la librería de compatibilidad para ver qué está pasando. ¿Qué versión de la libreta de compatibilidad está usando? Estoy usando r1 y evité r2 porque hay al menos un error de regresión con el que no se llama a onDestroy cuando se reemplaza un fragmento. – PJL
Estoy usando r3, buscaré una versión anterior para ver si eso ayuda. ¿Alguna sugerencia sobre cómo llevar a cabo la depuración de la compat lib? Soy muy nuevo para depurar Java. – rofer
Intenta entrar en uno de los métodos de compatibilib y deberías pedirte la ubicación de las fuentes. – PJL