Некоторое время я задавался вопросом, почему мой метод 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, позже используется для определения того, какой URL использовать на более поздней стадии, но я понял, что это не важно для моего вопроса.
У меня вопрос: ПОЧЕМУ onCreate нужно запускать дважды из-за этого кода?