2011-08-29 25 views

Respuesta

6

Independientemente de si usted decide llamar al método súper depende de si usted requiere la funcionalidad heredada. A menudo puede averiguar si necesita llamar al método super de la documentación Api.

Algunas veces debe hacer algo antes de llamar al método super (es decir, filtrar un atributo o realizar una acción). A veces su código tiene que suceder después de que se haya ejecutado el método super.

Es muy específico de implementación.

+3

La documentación dice "Nota: La implementación de estos métodos de ciclo de vida siempre debe llamar a la implementación de la superclase antes de realizar cualquier trabajo, como se muestra en los ejemplos anteriores". De su respuesta, ¿entiendo que necesita romper esa regla a veces? –

+0

Siempre se debe llamar al método Super cuando la documentación lo indique explícitamente. Por lo general, puede elegir qué hacer antes y después de la súper llamada. Al anular un método base, siempre debe tener una comprensión de la forma en que funciona ese método. Si elige o no llamar al súper método depende de a) si debe hacerlo (es decir, la documentación dice que) o b) desea la funcionalidad básica. La cita en su comentario indica que una circunstancia particular requiere que se llame al supermétodo antes de cualquier proceso personalizado @arne –

+3

. Simplemente dice "siempre". No encontré ninguna precondición particular en los documentos. –

15

El código fuente de Android puede decirnos todo. Si marca la súper clase de actividad se pueden encontrar las siguientes líneas:

protected void onResume() { 
    if (DEBUG_LIFECYCLE) Slog.v(TAG, "onResume " + this); 
    getApplication().dispatchActivityResumed(this); 
    mCalled = true; 
} 

Sobre esta base, no importa antes o después de que se llama.

Cuestiones relacionadas