目前有采用下面方法,但是这样仅仅是改变了应用的语言,系统没有改变,我的需求是改变天下系统语言:
private void setLanguage(int language) {
try {
Configuration config = getResources().getConfiguration();
DisplayMetrics dm = getResources().getDisplayMetrics();
if (language == Common.LANGUAGE_EN) {
config.locale = Locale.ENGLISH;
} else {
config.locale = Locale.SIMPLIFIED_CHINESE;
}
getResources().updateConfiguration(config, dm);
SharedPreferences sp = getSharedPreferences("userinfo", 0);
SharedPreferences.Editor editor=sp.edit();
editor.putInt("locale", language);
editor.commit();
} catch (Exception e) {
e.printStackTrace();
}
}
已找到一种方案并验证通过,通过反射机制,不过设置完了,重启后又恢复原语言了,追问该如何保存系统语言设置?