2010-10-08 6 views
0

J'ai quelques actions communes lancées dans les méthodes onPause() et onResume(). (Comme l'enregistrement et la désinscription BroadcatsReceivers)Tâches courantes dans Méthodes d'activités - comment les organiser?

Maintenant je les mets dans des classes abstraites et j'étends des classes d'activités. Après avoir créé des classes abstraites avec des actions communes, je finis avec une situation où je ne peux pas étendre l'activité à cause du manque d'héritage multiple de Java.

Comment gérez-vous de telles choses? Est-ce que vous dupliquez du code ou faites quelque chose de plus intelligent?

Je me demande si c'est un problème plus large - non seulement pour Android, mais le langage Java.

+0

Votre classe abstraite étend Activité bien? Donc, votre classe concrète étend l'activité aussi. Ou est-ce que je ne comprends pas votre question? –

+0

Oui en effet. J'ai la tâche commune A dans ExtendedAbstractActivityA et la tâche B dans ExtendedAbstractActivityB. Ensuite, je veux avoir les deux tâches dans l'activité C. – pixel

Répondre

1

La tâche A et la tâche B sont deux tâches distinctes. Mais pour être utilisé dans une seule classe. Vous pouvez donc avoir une seule classe abstraite. Le résumé peut ne pas être nécessaire si vous estimez qu'il n'y a pas de fonctions qui devront être remplacées dans la classe enfant.

Si pour une raison quelconque, il peut être une tâche D, qui utilise la tâche A seul, vous pouvez effectuer les opérations suivantes:

public abstract class ExtendedAbstractActivityA extends Activity 
{ 
    public void TaskA() {} 
    public void TaskB() {} 
    //Other abstract classes 
} 

Vous pouvez appeler ces tâches individuellement à partir de vos classes respectives.

Questions connexes