亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

onCreate 運行了兩次,因為我在應用程序啟動時設置了語言環境?

onCreate 運行了兩次,因為我在應用程序啟動時設置了語言環境?

Helenr 2021-09-03 17:33:21
我一直想知道為什么我的 onCreate 方法運行兩次,現在發現它與我在啟動時設置應用程序的語言環境有關...我的問題是,它是否有必要運行兩次或不是?這是使 onCreate 運行兩次的代碼: /*Sets the language of the application and also returns the integer value of selected language*/protected Integer setLanguage() {    String lang = prefs.getString("language-key","0");    Integer language = Integer.parseInt(lang);    Configuration config = context.getResources().getConfiguration();    if (!decideLang(language).equals("") && !config.locale.getLanguage().equals(decideLang(language))) {        setLocale(decideLang(language));    }    return language;}/*Sets the locale*/private void setLocale(String lang) {    ((Activity) context).recreate();    Locale myLocale = new Locale(lang);    Resources res = context.getResources();    DisplayMetrics dm = res.getDisplayMetrics();    Configuration conf = res.getConfiguration();    conf.locale = myLocale;    res.updateConfiguration(conf, dm);}setLanguage 方法返回的整數稍后用于確定在稍后階段要使用的 URL,但我已經意識到這對我的問題并不重要。我的問題是,為什么 onCreate 需要因為這段代碼運行兩次?
查看完整描述

1 回答

?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

((Activity) context).recreate();,正如它在罐子上所說的那樣,重新創建了 Activity,所以 onCreate() 當然會被調用兩次。



查看完整回答
反對 回復 2021-09-03
  • 1 回答
  • 0 關注
  • 278 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號