30 votes

Android garantit-il qu'une activité est un singleton?

Si une activité est un singleton dans la pratique, je pense que je peux gagner en efficacité en déclarant les membres appropriés "statiques", sans risque. Oui?

18voto

ankitjaininfo Points 4395

Le Android documentation dit -

il n'y a jamais plus d'une instance d'un "singleTask" ou "instance unique" de l'activité, de sorte que l'instance est prévu pour gérer toutes les nouvelles intentions.

Cela signifie que vous pouvez utiliser à des membres statiques.

En outre, un standard ou singleTop devrait avoir thread-safe membres statiques uniquement. Supposons que l'activité actuelle de la pile est A-B-C-D., Si l'arrivée objectif est, pour une activité de type B qui est en "standard" ou "singleTop" mode. Une nouvelle instance de B devrait être lancé en tant que (puisque B n'est pas au sommet de la pile), de sorte que le montant de la pile serait A-B-C-D-B.

3voto

hackbod Points 55292

Une chose s'il vous plaît NE PAS utiliser singleTask ou singleInstance à cette fin. Les drapeaux de lancement d'activité sont là pour contrôler le comportement des piles d'activités. Ils ont un impact visible sur l'interaction de l'utilisateur avec votre activité (ce qui la rend non standard). Ces modes sont destinés à être utilisés lorsque vous souhaitez ce type d'interaction utilisateur, ils ne doivent PAS être utilisés pour modifier les détails d'implémentation de votre application.

1voto

Felix Points 33944

Non. Le même Activity peut être démarré plusieurs fois dans le même processus. Par exemple, vous pouvez essayer de démarrer un Activity partir de lui-même, en cliquant sur un bouton.

0voto

Andy Zhang Points 4671

Oui, une activité peut être un "singleton" si vous vous assurez qu'une instance de l'activité A n'est pas démarrée alors qu'une autre instance de l'activité A est dans la pile d'activités (une instance de l'activité A pourrait techniquement démarrer une autre instance d'elle-même).

0voto

Sandro L Points 589

Consultez l' activité de la propriété launchMode à android.page développeur.

Citation: "la norme est le mode par défaut et est approprié pour la plupart des types d'activités. SingleTop est aussi une commune et utile mode de lancement pour de nombreux types d'activités. Les autres modes - singleTask et à instance unique , ne sont pas appropriés pour la plupart des applications, car elles aboutissent à un modèle d'interaction qui est susceptible d'être inconnu pour les utilisateurs et est très différent de la plupart des autres applications."

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X