Android完美多語言應用,不重啟應用,不改變系統語言


使用系統設置中的API會改變系統的語言,在onpause等去改變語言,效果不是太好。

另外下面的方法只有在新啟動的activity中才能生效。

    public void switchLanguage(Locale locale) {
        Resources resources = getResources();// 獲得res資源對象
        Configuration config = resources.getConfiguration();// 獲得設置對象
        DisplayMetrics dm = resources.getDisplayMetrics();// 獲得屏幕參數:主要是分辨率,像素等。
        config.locale = locale; // 簡體中文
        resources.updateConfiguration(config, dm);
    }

新浪微博以及微信都有多語言項,而且都是在設置界面。也就是說除了當前切換語言界面還有其它已啟動的activity存在。

新浪微博使用重新啟動的方式實現,微信則看似沒有重新啟動應用。我猜測分析發現其是將現有的activity棧中的除首頁外都finish了,然后手動的將首頁activity切換語言。這樣就完美實現了。

我的項目需求更加簡單,只能在登錄頁面實現多語言的設置,也就代表着activity棧中只有當前activity,只需要將當前activity根據語言的設置手動同步就可以了。

以后最好將選擇語言項設計到登陸頁。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM