Je ne suis pas un pro Android mais j'ai développé une application composée de plus de 50 activités qui rend l'application vraiment grande. Après 8 semaines de développement, il y a maintenant des problèmes qui ont rendu l'application difficile à maintenir et à améliorer. les principaux que je traite sontAndroid: une seule activité, plusieurs vues
Je ne peux pas passer référence d'objet aux constructeurs d'activités. En fait, j'ai trouvé les mécanismes de
startActivityForResult
-Intent
-onActivityResult
vraiment limitant et résulte en code corrompu de nombreuses constantes pour les actions par activité et beaucoup deswitch
case
qui est vraiment difficile à suivre le flux de l'application.Un autre problème est que je ne sais pas comment gérer le cycle de vie de toute l'application car chaque activité a son propre cycle de vie.
J'ai eu une expérience réussie avec LWUIT et J2ME – polish qui ignorent MIDlets J2ME (similaires à l'activité android) et mettre en œuvre leur propre architecture et système de fenêtrage avec un seul MIDlet que l'entrée à l'application. Je suis venu avec la même idée pour Android.
Pour clarifier les choses, je pense à une application avec juste une des principales Activity
et d'autres activités mises en œuvre sous forme d'objets qui étendent l'objet View
et ces vues peuvent être ajoutées dynamiquement à l'activité principale FrameLayout
et la pile sur l'autre. La logique des activités peut être implémentée dans de telles classes et j'ai même trouvé un moyen d'implémenter des dialogues de cette manière. Les objets d'entreprise et d'état peuvent être transmis à leur constructeur et il semble bon d'ignorer son effet secondaire d'écrire un peu plus de code. De cette façon, les écouteurs peuvent également être transmis aux constructeurs de vues, ce qui facilite le changement d'interface utilisateur et la gestion des flux.
Mais les questions sont:
- Est-ce une bonne pratique?
- Cela ne me mènerait-il pas à des problèmes de performance ou de mémoire?
Je suis aussi au courant 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
Aucune de ces questions porte clairement sur les performances ou la pratique des preuves ou une référence documentée raisonnable
S'il vous plaît quelqu'un m'aider avec cela
Lorsque le projet est si énorme, le code doit être conçu correctement, retirer toutes les fonctionnalités communes. mieux structurer les données (meilleures structures de données). Ceux-ci vont selon moi aider à réduire beaucoup de code. – sat
en fait je l'ai fait. J'ai suivi un modèle semi MVVM bien que Android ne supporte pas la liaison de données. les principaux problèmes résident dans la couche d'interface utilisateur et les vues de commutation et de glowing togather. – anonim