2012-09-17 38 views
5

Mientras lee el libro "Hola, Android", me di cuenta de que:public onCreate(), o protected onCreate()?

cada archivo Java con onCreate(Bundle savedInstanceState) método, tiene protegida modificador de acceso, excepto en la actividad principal del programa [que tiene: public void onCreate(Bundle savedInstanceState)] .

¿Por qué es el método onCreatepublic sobre la actividad principal del programa, pero protected en todas partes?

+0

puede usar el modificador de acceso ** public ** en toda la actividad .... –

+0

¿Puede decirnos qué hizo ese programa? –

+0

Gracias por respuestas rápidas. – Soroor

Respuesta

0

Puede ser protected. No hay nada importante o sabio sobre eso.

1

Puede cambiar la visibilidad de un método. Lo que no puede hacer es: reducir la visibilidad (hacer que un método público sea privado), acceder a un método privado (hacerlo público)

2

onCeate() está protegido para evitar llamarlo desde el objeto de actividad.

MyActivity activity = new MyActivity(); 
activity.onCreate(args); // which doesn't make sense because activity is not yet created 

Dado que este método sólo se invoca cuando se crea la actividad, que calificó a sí mismo lo más probablemente le dará una NullPointerException porque la actividad no ha sido creada. S/O Post

0

No hay ninguna razón para hacer que el método sea público (pero hacerlo no afecta nada). No deberías llamarlo manualmente de todos modos.

Por cierto Intellij IDEA tiene plantilla de actividad con onCreate público. Esta puede ser la razón por la cual este método es público en el libro.

Cuestiones relacionadas