Ai-je besoin tous les trois constructeurs pour Android affichage personnalisé?

Lors de la création d'un affichage personnalisé, j'ai remarqué que beaucoup de gens semblent le faire comme ceci:

public MyView(Context context) {
  super(context);
  //this constructor used when programmatically creating view
  doAdditionalConstructorWork();
}

public MyView(Context context, AttributeSet attrs) {
  super(context, attrs);
  //this constructor used when creating view through XML
  doAdditionalConstructorWork();
}

private void doAdditionalConstructorWork() {

  //init variables etc.
}

Ma première question est, quel est le constructeur MyView(Context context, AttributeSet attrs, int defStyle)? Je ne suis pas sûr de l'endroit où il est utilisé, mais je le vois dans la super-classe. J'ai besoin de lui, et où est-il utilisé?

Il y a une autre partie à cette question.