【发布时间】:2018-04-15 17:50:41
【问题描述】:
我关注Android N change language programmatically 更改我的应用程序在 android N 及更高版本中的语言。但是,我仍然有应用程序上下文实例的问题。
在我的应用程序类中:
private static Application mInstance;
public static Context getApplication() {
return mInstance;
}
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
}
语言已更改,但从应用程序上下文获取的资源未更改。例如:
MyApplication.getApplication().getResources().getString(stringId);
返回错误的语言字符串。
在这种情况下我可以更新应用程序实例吗?我坚持这个问题几个小时。因为 MyApplication.getApplication() 在我的应用程序中的许多地方都使用过。所以我无法转换为 Activity 上下文。
非常感谢。
【问题讨论】:
-
在语言更改完成后再次尝试为应用程序调用 onCreate。
MyApplication.getApplication().onCreate()。或者,您可以尝试在语言更改时重新启动应用程序,这应该设置上下文。 -
您是否在清单文件中的
application下添加了您的MyApplication
标签: android applicationcontext android-7.0-nougat multiple-languages