Android: qu'est-ce qui est mieux: plusieurs activités ou la commutation de vues manuellement?

J'ai développé certaines applications pour Android, et cette question reste toujours:

Comment structurer mon UI? Devrais-je lancer une activité après l'activité et laisser le téléphone pour faire le bouton «retour», ou devrais-je choisir plus optimisé, mais plus complexe à mettre en œuvre, de manière à commuter manuellement les Vues puis à effectuer manuellement la fonctionnalité du bouton «Retour»?

  • Images pour les boutons AlertDialog
  • La barre de défilement ne s'affiche pas dans RecyclerView
  • Ouvrez le lien de google play store dans la version mobile Android
  • Comment supprimer l'application de la liste des applications récentes?
  • Pourquoi Logcat ne présente rien?
  • Remplacer les "éléments" dans le style d'Android.
  • Que pensez-vous (ou savoir) est la meilleure pratique?

    7 Solutions collect form web for “Android: qu'est-ce qui est mieux: plusieurs activités ou la commutation de vues manuellement?”

    Je dirais que les activités multiples ont presque toujours plus de sens. Je ne pense pas que Android est conçu pour changer constamment ses propres vues – vous manquez tant. Vous devez implémenter Back yourself, vous n'obtenez pas de transitions inter-activités, vous devez implémenter beaucoup de logique interne pour reprendre une application dans l'état correct. Si vous ne partagez pas votre application dans les activités, il sera beaucoup plus difficile de modifier le flux de votre application plus tard. Il en résulte aussi une méga-activité qui peut être beaucoup plus difficile à manipuler que beaucoup de petits morceaux de code.

    J'ai du mal à imaginer que la vitesse est vraiment un problème; Si c'est le cas, il y a quelque chose qui ne va pas avec la façon dont vous initialisez chaque Activité. Par exemple, j'ai essayé de passer des objets sérialisables entre les activités, et cela s'est avéré incroyablement lent; Quand j'ai changé pour une méthode plus rapide de passage des objets, la vitesse de lancement des activités a augmenté énormément.

    En outre, je pense qu'il est révélateur que les règles d'Android pour la conception des activités et des tâches ne mentionnent pas le passage des vues; Il est centré autour d'une conception Activity-as-View.

    J'aimerais souligner certains cas où une seule activité pourrait être une meilleure conception pour une application Android qui possède plus d'une vue plein écran.

    • Si les écrans d'application sont étroitement couplés et partagent un objet commun sur lequel ils fonctionnent tous. Dans ce cas, passer autour de l'Objet peut nécessiter un Bundle et peut être sujet à une erreur car il y aura des copies de celui-ci. Un bon exemple pourrait être un assistant . Oui, vous pouvez utiliser les statiques pour accéder à l'objet commun, mais l'électricité statique peut être dangereuse dans Android (pensez à des modifications de configuration!)

    • Si vous voulez des animations très cool entre les écrans. Peut-être que vous voulez un oiseau à décoller dans un écran et atterrir dans un autre écran. Essayez de le faire lorsque chaque écran est une activité!

    D'autre part, si l'un de vos écrans est conçu pour être montré par un certain nombre d'autres applications, alors cet écran devrait être sa propre Activité.

    MISE À JOUR Mars 2014:

    À ce stade, la question devrait maintenant inclure le choix des Fragments. Je pense que les vues sont probablement le choix le moins probable de la 3: Activité, Fragment, Vue. Si vous souhaitez implémenter des écrans qui utilisent le bouton arrière, il doit s'agir des activités ou des fragments car les deux manipulent le bouton arrière en mode natif. Des fragments devront être ajoutés à la pile arrière FragmentManager pour que le bouton arrière fonctionne. Gérer les fragments, les dialogues et la pile arrière peut être un peu ennuyant cependant!

    Gardez également à l'esprit que la mise en œuvre de votre application avec plusieurs Activities donnera à l'utilisateur une expérience plus cohérente avec la plate-forme dans son ensemble. Une partie de l'expérience sera façonnée en utilisant les applications Google intégrées, de sorte que les utilisateurs auront probablement un temps plus facile à utiliser votre application si elle se comporte de manière similaire à celles qui sont déjà installées sur le téléphone.

    Différent des autres, j'utilise un mélange des deux, par exemple,
    1. Il existe un menu principal lorsque l'application commence
    2. Vous cliquez sur la recherche, vous amène à l'activité de recherche
    3. Ensuite, il y a un bouton de filtre qui vient de changer de vue et qui vous montre des options de filtrage
    4. Il y a deux boutons à la fin de la vue du filtre, vous appuyez sur "Rechercher" ou "Annuler" et vous revenez à la recherche à nouveau (sans activité de commutation)
    5. Maintenant, si l'utilisateur frappe le bouton de retour du téléphone, il est ramené au menu principal au lieu des options du filtre de recherche. Ce qui, je suppose, est le bon comportement.

    Utilisez-le de la façon dont l'utilisateur se sentira naturel. Et garder tout dans une activité rendra complexe.

    Tout dépend de l'application, qu'est-ce que vous essayez d'obtenir de meilleures performances, une UI plus lisse. IMHO Je préfère la deuxième approche de contrôle des activités manuellement, même si cela est plus complexe que vous l'avez déclaré. Il s'agit d'une approche que j'ai utilisée dans mon projet d'onglets Android, mais vous voudrez peut-être jeter un coup d'oeil à une classe appelée ActivityGroup (pas sûr du paquet), cela vous permet d'avoir plusieurs activités avec lesquelles vous pouvez basculer, bien sur cette classe Est-ce que vos activités ne sont pas déchargées lorsque vous commutez, mais une mauvaise chose, il faut plus de temps pour charger votre application principale.

    Juste mon avis.

    Le problème avec la commutation de vues, sur lequel je me suis heurté, est également causé par un collecteur d'ordures. On dirait que le GC est déclenché lorsque vous quittez l'activité et non la vue. Ainsi, changer les onglets avec une vision des enfants assez complexe, par exemple, entraînera presque inévitablement une exception de débordement de pile.

    Je travaille sur une application qui n'a qu'une seule activité, mais je suis confronté à de nombreux problèmes en particulier avec le fragment de carte. Peut-être que je ne manipule pas le fragment de manière correcte, mais je suggérerais que l'approche à plusieurs activités soit meilleure.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.