最近项目多语言国际化,文案确认声明,成功设置语言后发现有个文案总是没有更新。
最终发现,这个文案代码里面使用的Application获取的,所以设置文案后,Application因为没有杀死所以持有的文案还是旧的文案。
App.getMyApplication().getResources().getString(R.string.Confirm) XXX
改为Activity获取后得以解决:
parent.getResources().getString(R.string.Confirm)
后面发现在部分机型上面,web页会更改语言为手机默认语言,从web页返回之后语言都为手机默认语言,所以给Application添加监听器
registerActivityLifecycleCallbacks
在onActivityStarted的时候将语言强制设置为我们设置的语言。