2 – Surchargez la classe Application d’Android – point d’entrée de l’application

Il existe sous Android une classe Application, autrement nommée en java : android.app.Application.

Celle-ci possède un point d’entrée onCreate() bien pratique pour intercepter un point d’entrée avec tout démarrage de services, activités ou autre.

Pour ce faire il vous suffit de créer une classe java héritant de android.app.Application comme ceci :


package com.ltm.ltmtabswipetest;
public class MonApplication extends android.app.Application {

@Override
public void onCreate() {
Log.v("ltm","MonApplication.onCreate()");
Toast.makeText(getApplicationContext(), "onCreate()", Toast.LENGTH_SHORT ).show();
super.onCreate();
}

@Override
public void onTerminate() {
Log.v("ltm","MonApplication.onTerminate()");
super.onTerminate();
}

}

Il vous faudra également modifier votre fichier AndroidManifest.xml pour lui préciser le nom de votre héritant de android.app.Application, comme ceci par exemple :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    ...

    <application         ...         android:theme="@style/AppTheme"         android:name="com.ltm.ltmtabswipetest.MonApplication" >
        <activity             android:name="com.ltm.ltmtabswipetest.MainActivity"             android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

On remarquera ci-dessus que j’ai ajouté un attribut android:name à l’application pour préciser le nom de ma classe.

Désormais le point d’entrée principal de cette application Android sera MonApplication.onCreate(), je pourrais en profiter pour initialiser mon application Android.

Il est à noter que ci-dessus la méthode onTerminate() ne survient pas à la fin de l’application sur un périphérique réel (voir documentation des apis Google), mais uniquement dans un environnement émulé.

D’autres méthodes bien utiles sont disponible dans cette classe Application et sont re définissables comme ci-dessous :

public class MonApplication extends Application {

@Override
public void onLowMemory() {
// TODO Auto-generated method stub
super.onLowMemory();
}

@Override
public void onTrimMemory(int level) {
// TODO Auto-generated method stub
super.onTrimMemory(level);
}
}


La méthode onLowMemory() vous permettra d’être averti en cas de stress mémoire. Google ne définit pas le moment exact où il survient, mais c’est le moment de vider vos caches, mémoires devenues inutiles, etc.

La méthode onTrimMemory(int level) surviendra quand Android aura décider de gérer la mémoire de votre processus. Le niveau est un flag qui vous indique l’ampleur des travaux (ex : TRIM_MEMORY_COMPLETE).

Si cet article vous a plu, n’hésitez-pas à le partager avec vos connaissances et cliquant les boutons ci-dessous.

Catégories
0 Comments
0 Pings & Trackbacks

Laisser un commentaire