Application中setTheme为什么不生效
Android开发者们都知道在AndroidManifest.xml中可以通过Application的theme标签来设置全局的theme,后续的Activity都可以继承这个主题。不过在自定义Application中通过代码动态去setTheme是不会生效的。为什么不会生效呢,我们可以通过以下来解决这个问题。
Activity是怎么继承到Application的主题的
1.ActivityThread.performLaunchActivity()
在ActivityThread.performLaunchActivity方法中,在回调Activity onCreate之前会设置Activity的主题。
int theme = r.activityInfo.getThemeResource();
if (theme != 0) {
//设置主题
activity.setTheme(theme);
}
activity.mCalled = false;
if (r.isPersistable()) {
mInstrumentation.callAc