fix: 简单优化启动耗时问题
This commit is contained in:
@ -61,6 +61,7 @@ import com.gh.gamecenter.common.utils.NewFlatLogUtils;
|
||||
import com.gh.gamecenter.common.utils.PackageFlavorHelper;
|
||||
import com.gh.gamecenter.common.utils.SensorsBridge;
|
||||
import com.gh.gamecenter.common.utils.ShareUtils;
|
||||
import com.gh.gamecenter.core.provider.IAppProvider;
|
||||
import com.gh.gamecenter.core.provider.IDownloadManagerProvider;
|
||||
import com.gh.gamecenter.core.provider.IEntranceUtilsProvider;
|
||||
import com.gh.gamecenter.core.provider.IPackageInstallerProvider;
|
||||
@ -159,6 +160,10 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements IBus
|
||||
}
|
||||
}
|
||||
|
||||
// 图片加载库 Fresco 在 Application 以异步的形式初始化
|
||||
// 但当应用重建时,可能出现异步初始化尚未完成就调用 SimpleDraweeView 方法的情况,所以在这里同步卡一下初始化
|
||||
initImageLoaderIfNeeded();
|
||||
|
||||
fixBadParcelableExceptionIfNeeded(savedInstanceState);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
@ -814,4 +819,14 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements IBus
|
||||
super.attachBaseContext(newBase);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化图片加载器
|
||||
*/
|
||||
private void initImageLoaderIfNeeded() {
|
||||
IAppProvider appProvider = (IAppProvider) ARouter.getInstance().build(RouteConsts.provider.app).navigation();
|
||||
if (appProvider != null) {
|
||||
appProvider.initImageLoaderIfNeeded();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -688,4 +688,21 @@ object ImageUtils {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 这里反射获取 sDraweecontrollerbuildersupplier 根据是否有值确定是否被初始化了
|
||||
*/
|
||||
@JvmStatic
|
||||
fun isFrescoInitialized(): Boolean {
|
||||
val clazz = SimpleDraweeView::class.java
|
||||
return try {
|
||||
val field =
|
||||
clazz.getDeclaredField("sDraweecontrollerbuildersupplier")
|
||||
field.isAccessible = true
|
||||
val obj = field[SimpleDraweeView::class.java]
|
||||
obj != null
|
||||
} catch (ignore: java.lang.Exception) {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user