从文档中,我读到有两种方法可以在API 21以下的设备中支持MultiDex:


让Application类扩展MultiDexApplication,并且
如果Application扩展了其他内容,请在Application类的MultiDex.install(this)函数中使用onAttachBaseContext(Context base)


它们与在默认情况下在MultiDexApplication中扩展MultiDex.install(this)调用onAttachBaseContext()基本上相同,还是这两种方法之间存在差异?

最佳答案

这是为您的应用启用multidex的两种方法,它们是完全相同的

如果您想为启用multidex的应用程序创建类,可以将MultiDexApplication作为应用程序名称放在AndroidManifest中,而无需做更多事情,因为在MultiDexApplication中覆盖了attachBaseContext(),请看:

public class MultiDexApplication extends Application {
    public MultiDexApplication() {
    }

    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
}


如果应用程序类的末尾仅扩展了Application,那么您也可以将扩展名更改为MultiDexApplication而不是ovverride attachBaseContext()方法,否则您的应用程序类不是从Application扩展的,因此您必须覆盖attachBaseContext()和定制应用程序类

关于android - 扩展MultiDexApplication和MultiDex.install(this)有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53314675/

10-10 10:02