2015-09-26 1 views
0

Ce guide ici vous dire comment créer une classe d'application:classe d'application pour les variables statiques et applications MultiDex

http://www.intridea.com/blog/2011/5/24/how-to-use-application-object-of-android

Il mentionne que vous devez définir le nom de votre classe d'application dans votre manifeste:

<application android:icon="@drawable/icon" android:label="@string/app_name" android:name="MyApplication"> 

Je pense que la classe d'application sont utiles pour conserver des variables statiques/objets comme par exemple, GoogleApiClient de sorte que vous ne pas se reconnecter avec Google à chaque fois que se termine votre activité, au lieu si vous le mettez en y notre classe d'application, vous aurez seulement besoin de vous connecter une fois lorsque votre application démarre et se déconnecter quand il se ferme.

J'ai une application multidex: https://developer.android.com/tools/building/multidex.html

applications Multidex me demande aussi de donner un nom constant de "android.support.multidex.MultiDexApplication" à l'application dans le manifeste:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.android.multidex.myapplication"> 
    <application 
     ... 
     android:name="android.support.multidex.MultiDexApplication"> 
     ... 
    </application> 
</manifest> 

Si je dois donner android:name="android.support.multidex.MultiDexApplication" que l'application nom, je ne peux pas également donner android:name="MyApplication". Pour autant que je sache, une application ne peut pas avoir deux noms.

Est-il possible d'avoir à la fois multidex et une classe d'application personnalisée dans une application?

+0

Avez-vous essayé de lire la partie «Éviter la limite de 65K» dans la page multidex? Parce que si vous avez, vous devriez. – JoxTraex

Répondre

1

Je pense que la classe d'application sont utiles pour conserver des variables statiques/objets

Si elles sont static, alors Application ne leur est pas la tenue.

Est-il possible d'avoir à la fois multidex et une classe d'application personnalisée dans une application?

Selon the documentation, vous pouvez avoir votre classe ou étendre MultiDexApplication avoir passer outre attachBaseContext() et appeler MultiDex.install(this) au lieu d'avoir besoin MultiDexApplication.

+0

Merci, je pense que je n'ai pas été clair dans ma question, mais ce que je voulais dire, c'est que s'ils sont dans la classe d'application, les objets ne seraient pas collectés aussi souvent que la classe d'activité. pour pouvoir accéder à ces objets. Je n'étais pas au courant que je peux étendre l'application multidex et j'essaierai cela. Merci! – Simon