第一步、使用Android开放的api更改Configuration,同时把语言类型保存下来 file:///D:/Program/WizNote/temp/0c0db9fa-d621-494c-b01e-d561d10089e3_4_files/clip_image0016ac72331-10db-441d-bbfa-7411e68db7d3.png 第二步、Destroy当前页面,重新绘制才能更改语言类型 file:///D:/Program/WizNote/temp/0c0db9fa-d621-494c-b01e-d561d10089e3_4_files/clip_image00264953521-b444-4128-97a1-4cc6eddcf9c0.png 如果你的页面不是首页,你调用上述代码只会更新当前页面,压在栈中的Activity依然不会更新界面。比如微信设置语言成功后,会自动跳转到首页,当然首页的内容也是更新后的,它的实现方式也很简单,与我们上面写的大同小异。就是监听设置成功后,destroy所有存在的页面,再跳转到首页。这时你的app就能满足了上面的需求了,可是别急还有第三步。 第三步、只要你的应用不彻底从Dalvik或者ART中彻底移除,上述都没问题。但是如果重新开机,或者强制杀掉应用,再次启动,就恢复到以前的语言类型了。 file:///D:/Program/WizNote/temp/0c0db9fa-d621-494c-b01e-d561d10089e3_4_files/clip_image003f5d0d450-8559-459e-be8e-1d68ce828252.png 这会我们就用到第一步中保存的语言的类型了,在所有页面的基类BaseActivity中,每次都调用下语言设置的方法,这样就能把页面给强制设置成业务需求的语言类型了。OK,这个问题就完满解决了,要为你的APP添加这个功能的话,对代码的改动是非常小的。下面附上代码地址:https://github.com/JackCho/SwitchLanguageDemo git地址:https://github.com/JackCho/SwitchLanguageDemo.git 如果觉得对你有所帮助,欢迎大家订阅我的微信公众账号——Android干货分享。下面是微信的二维码,为你提供及时高质的Android干货。
|