No soy un experto en Android aunque he desarrollado una aplicación que consta de más de 50 actividades que hacen que la aplicación sea realmente grande. Después de 8 semanas de desarrollo, ahora hay problemas que causaron que la aplicación sea difícil de mantener y actualizar. más importantes que trato sonAndroid: actividad única, vistas múltiples
no puedo pasar referencia de objeto a constructores actividades. De hecho, encontré los mecanismos de
startActivityForResult
-Intent
-onActivityResult
realmente limitadores y resulta en código sucio de muchas constantes para acciones por actividad y una gran cantidad deswitch
case
que es realmente difícil de seguir el flujo de la aplicación.Otro problema es que no sé cómo administrar el ciclo de vida de toda la aplicación ya que cada actividad tiene su propio ciclo de vida.
Había tenido una experiencia exitosa con LWUIT y J2ME – polish que ignoran MIDlets J2ME (similares a la actividad androide) y poner en práctica su propia arquitectura y sistema de ventanas con un solo MIDlet como la entrada a la aplicación. He venido con la misma idea para Android.
Para aclarar, estoy pensando en una aplicación con sólo uno Activity
principales y otras actividades llevadas a cabo como objetos que se extienden View
objeto y estos puntos de vista se pueden añadir de forma dinámica con la actividad principal FrameLayout
y apilar unas sobre otras. La lógica de las actividades se puede implementar en dichas clases e incluso he encontrado una manera de implementar diálogos de esta manera. Los objetos comerciales y estatales se pueden pasar a su constructor y suena bien ignorar su efecto secundario de escribir un poco más de código. De esta forma, los oyentes también pueden pasarse a los constructores de las vistas, lo que facilita el cambio de interfaz de usuario de la aplicación y la gestión del flujo.
Pero las preguntas son:
- ¿Es una buena práctica?
- ¿No me llevaría a problemas de rendimiento o memoria?
También soy consciente de
- Android: What is better - multiple activities or switching views manually?
- Don't Overload a Single Activity Screen
- Pattern one activity, multiple views. Advantages and disadvantages
Ninguna de estas abordar claramente las cuestiones con respecto al rendimiento o la práctica con pruebas razonables o referencia documentada
Por favor alguien me ayude con esto
Cuando el proyecto es tan grande, el código tiene que diseñarse correctamente, saque todas las funcionalidades comunes. mejor estructurar los datos (mejores estructuras de datos). Estos me ayudarán a reducir gran cantidad de código. – sat
de hecho lo he hecho. He seguido un patrón semi MVVM aunque Android no es compatible con el enlace de datos. los principales problemas residen en la capa UI y las vistas cambian y brillan. – anonim