Quand l'Application onCreate() la méthode appelée?

Dans mon application Android, j'ai un DefaultApplication classe qui s'étend android.app.Application, et dans son onCreate() je la lie de certains services qui seront utilisés par mes autres Activités dans cette application.

Aussi, j'ai un BroadcastReceiver qui est à l'écoute et reçoit C2DM Messages. Lorsque ce récepteur reçoit un message lorsque l'application n'est pas en cours d'exécution, il va déclencher une boîte de dialogue qui affiche le prochain message, et il va commencer une Activité de mon application.

Ma question est, quand je démarre une activité sans aucune interaction avec DefaultApplication, mon DefaultApplication's onCreate() appelée parce que l'Activité de cette application a commencé?

Voici la définition et le Manifeste de mon 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;
        }
    }
}

Manifeste ressemble à ceci:

<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>
  • oui, ça fonctionne comme ça, je n'ai pas vu d'autre d'autre...
  • Je n'ai pas unserstand pourquoi vous étendre Application? Ne devriez-vous pas étendre Activity?
  • Dans le reste de ma DefaultApplication-je stocker des données et de définir un certain nombre de méthodes qui sont utilisées à l'échelle de l'Application. J'ai copié une partie seulement de il ici.