vida una tipos savedinstancestate parte hace ejemplo desde describe como ciclo boton aplicacion activity actividad abrir android-activity oncreate application-lifecycle android

android-activity - una - protected void oncreate(bundle savedinstancestate)



¿Cuándo se llama el método onCreate() de la aplicación? (3)

En mi aplicación Android, tengo una clase DefaultApplication que amplía android.app.Application , y en su onCreate() algunos servicios que serán utilizados por mis otras actividades en esta aplicación.

También tengo un BroadcastReceiver que escucha y recibe mensajes C2DM. Cuando este receptor recibe un mensaje cuando la aplicación no se está ejecutando, activará un cuadro de diálogo que muestra el próximo mensaje y comenzará una Actividad de mi aplicación.

Mi pregunta es, cuando empiezo una actividad sin ninguna interacción con DefaultApplication , ¿se onCreate() DefaultApplication porque se ha iniciado una actividad de esa aplicación?

Aquí están la definición y el Manifiesto de mi DefaultApplication :

public class DefaultApplication extends Application { @Override public void onCreate() { super.onCreate(); doBindService(); } void doBindService() { // Establish a connection with the service. We use an explicit // class name because we want a specific service implementation that // we know will be running in our own process (and thus won''t be // supporting component replacement by other applications). bindService(new Intent(DefaultApplication.this, SocketService.class), socketServiceConnection, Context.BIND_AUTO_CREATE); mIsBound = true; } void doUnbindService() { if (mIsBound) { // Detach our existing connection. unbindService(socketServiceConnection); mIsBound = false; } } }

Manifiesto se ve así:

<application android:icon="@drawable/icon" android:label="@string/app_name" android:name="com.mypackage.DefaultApplication" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:debuggable="true"> <service android:name="com.mypackage.services.SocketService"></service> <activity android:name="TestActivity" android:screenOrientation="landscape"></activity> </application>


Puede encontrar una respuesta oficial cuando onCreate se llama here .

Se invoca cuando se inicia la aplicación, antes de que se hayan creado objetos de actividad, servicio o receptor (excluidos los proveedores de contenido). Las implementaciones deben ser lo más rápidas posible (por ejemplo, usando la inicialización lenta del estado) ya que el tiempo pasado en esta función afecta directamente el rendimiento de comenzar la primera actividad, servicio o receptor en un proceso. Si anula este método, asegúrese de llamar a super.onCreate ().


Solo la primera vez.

Cuando se inicia Activity y la aplicación no se carga, se onCreate() ambos métodos onCreate() .

Pero para los siguientes inicios de actividad, no se onCreate() la aplicación onCreate() .