Dans mon application Android, j'ai une classe DefaultApplication
qui s'étend android.app.Application
, et dans son onCreate()
je lie certains services qui seront utilisés par mes autres activités dans cette application.Quand la méthode onCreate() de l'application est appelée?
J'ai aussi un BroadcastReceiver
qui écoute et reçoit des messages C2DM. Lorsque ce récepteur reçoit un message lorsque l'application n'est pas en cours d'exécution, il ouvre une boîte de dialogue qui affiche le message à venir et démarre une activité de mon application.
Ma question est, quand je démarre une activité sans aucune interaction avec DefaultApplication
, est-ce que DefaultApplication
onCreate()
sera appelée parce qu'une activité de cette application a commencé?
Voici la définition et Manifest 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;
}
}
}
Manifest 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, cela fonctionne, je ne l'ai pas vu un autre autre ... – atasoyh
je ne sais pas pourquoi unserstand vous étendez 'Application'? Ne devriez-vous pas étendre «Activité»? – Caner
@LAS_VEGAS Dans le reste de mon DefaultApplication, je stocke des données et définit certaines méthodes qui sont utilisées à l'échelle de l'application. Je n'en ai copié qu'une partie ici. –