静态变量和 MultiDex 应用程序的应用程序 class

Application class for static variables and MultiDex applications

本指南告诉您如何创建应用程序class:

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

它提到您需要在清单中定义应用程序的名称class:

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

我认为应用程序 class 可用于保存静态变量/对象,例如 GoogleApiClient,这样您就不必每次 [=] 都重新连接 Google 34=] 结束,相反,如果你把它放在你的应用程序中 class,你只需要在你的应用程序启动时连接一次,并在它关闭时断开连接。

我有一个 multidex 应用程序:https://developer.android.com/tools/building/multidex.html

Multidex 应用程序还要求我为清单中的应用程序提供常量名称 "android.support.multidex.MultiDexApplication"

<?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>

如果我必须给 android:name="android.support.multidex.MultiDexApplication" 作为应用程序名称,我不能也给 android:name="MyApplication"。据我所知,一个应用程序不能有两个名字。

是否可以在应用程序中同时包含 multidex 和自定义应用程序 class?

I think Application class are useful to hold static variables / objects

如果它们是 static,那么 Application 就没有持有它们。

Is it possible to have both multidex and a custom application class in an app?

根据 the documentation,您可以让 class 扩展 MultiDexApplication 或覆盖 attachBaseContext() 并调用 MultiDex.install(this) 而不是 MultiDexApplication.