从文档中,我读到有两种方法可以在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/