onCreate 是 运行 两次,因为我在应用程序启动时设置了语言环境?
onCreate is ran twice because I set locale at app launch?
我一直想知道为什么我的 onCreate 方法是 运行 两次,现在发现这与我在启动时设置应用程序的语言环境有关...我的问题是,有必要运行两次吗?
这是使 onCreate 运行 两次的代码:
/*Sets the language of the application and also returns the integer value of selected language*/
protected Integer setLanguage() {
String lang = prefs.getString("language-key","0");
Integer language = Integer.parseInt(lang);
Configuration config = context.getResources().getConfiguration();
if (!decideLang(language).equals("") && !config.locale.getLanguage().equals(decideLang(language))) {
setLocale(decideLang(language));
}
return language;
}
/*Sets the locale*/
private void setLocale(String lang) {
((Activity) context).recreate();
Locale myLocale = new Locale(lang);
Resources res = context.getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
}
setLanguage 方法 returns 稍后用于确定 URL 在后期使用什么的整数,但我已经意识到这对我的问题并不重要。
我的问题是,为什么 onCreate 需要 运行 两次因为这段代码?
((Activity) context).recreate();
,正如它在罐头上所说,重新创建 Activity,因此 onCreate() 当然会被调用两次。
(来自 )
我一直想知道为什么我的 onCreate 方法是 运行 两次,现在发现这与我在启动时设置应用程序的语言环境有关...我的问题是,有必要运行两次吗?
这是使 onCreate 运行 两次的代码:
/*Sets the language of the application and also returns the integer value of selected language*/
protected Integer setLanguage() {
String lang = prefs.getString("language-key","0");
Integer language = Integer.parseInt(lang);
Configuration config = context.getResources().getConfiguration();
if (!decideLang(language).equals("") && !config.locale.getLanguage().equals(decideLang(language))) {
setLocale(decideLang(language));
}
return language;
}
/*Sets the locale*/
private void setLocale(String lang) {
((Activity) context).recreate();
Locale myLocale = new Locale(lang);
Resources res = context.getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
}
setLanguage 方法 returns 稍后用于确定 URL 在后期使用什么的整数,但我已经意识到这对我的问题并不重要。
我的问题是,为什么 onCreate 需要 运行 两次因为这段代码?
((Activity) context).recreate();
,正如它在罐头上所说,重新创建 Activity,因此 onCreate() 当然会被调用两次。
(来自