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?
Réponses
Trop de publicités?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.
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.
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."