中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

onConfigurationChanged的作用

發布時間:2020-07-10 21:13:26 來源:網絡 閱讀:656 作者:技術人 欄目:移動開發

onConfigurationChanged的作用

API原文說明:
android:configChanges
Lists configuration changes that the activity will handle itself. When a configuration change occurs at runtime, the activity is shut down and restarted by default, but declaring a configuration with this attribute will prevent the activity from being restarted. Instead, the activity remains running and its onConfigurationChanged() method is called.

Any or all of the following strings are valid values for this attribute. Multiple values are separated by '|' — for example, "locale|navigation|orientation".

onConfigurationChanged的作用

All of these configuration changes can impact the resource values seen by the application. Therefore, when onConfigurationChanged() is called, it will generally be necessary to again retrieve all resources (including view layouts, drawables, and so on) to correctly handle the change.

 

在一些特殊的情況中,你可能希望當一種或者多種配置改變時避免重新啟動你的activity。你可以通過在manifest中設置android:configChanges屬性來實現這點。
你可以在這里聲明activity可以處理的任何配置改變,當這些配置改變時不會重新啟動activity,而會調用activity的
onConfigurationChanged(Resources.Configuration)方法。如果改變的配置中包含了你所無法處理的配置(在android:configChanges并未聲明),
你的activity仍然要被重新啟動,而onConfigurationChanged(Resources.Configuration)將不會被調用。

其次:android:configChanges=""中可以用的值:keyboard|mcc|mnc|locale|touchscreen|keyboardHidden|navigation|orientation……
Configuration 類中包含了很多種信息,例如系統字體大小,orientation,輸入設備類型等等.(如上圖)
比如:android:configChanges="orientation|keyboard|keyboardHidden"

 

當Configuration改變后,ActivityManagerService將會發送"配置改變"的廣播,會要求ActivityThread 重新啟動當前focus的Activity.
這是默認情況,我們不做任何處理,如果我們android:configChanges來配置Activity信息,那么就可以避免對Activity銷毀再重新創建,而是調用
onConfigurationChanged方法。

通過查閱Android API可以得知android:onConfigurationChanged實際對應的是Activity里的onConfigurationChanged()方法。
在AndroidManifest.xml中添加上訴代碼的含義是表示在改變屏幕方向、彈出軟件盤和隱藏軟鍵盤時,不再去執行onCreate()方法,
而是直接執行onConfigurationChanged()。如果不申明此段代碼,按照Activity的生命周期,都會去執行一次onCreate()方法,而onCreate()方法通常會在顯示之前做一些初始化工作。所以如果改變屏幕方向這樣的操作都去執行onCreate()方法,就有可能造成重復的初始化,降低程序效率是必然的了,而且更有可能因為重復的初始化而導致數據的丟失。這是需要千萬避免的。


參考:
Android學習筆記——關于onConfigurationChanged
http://www.cnblogs.com/wisekingokok/archive/2011/10/06/2199948.html

onConfigurationChanged信息處理 監聽屏幕旋轉 語言變換 鍵盤滑動 
http://fghzhaopai.blog.163.com/blog/static/4780555620116882211560/


向AI問一下細節
推薦閱讀:
  1. uboot的作用
  2. key的作用

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沂水县| SHOW| 安泽县| 辉县市| 莒南县| 北川| 商城县| 阿拉善左旗| 法库县| 富蕴县| 兰考县| 甘泉县| 铁岭县| 南阳市| 合阳县| 枣强县| 金山区| 郴州市| 积石山| 定安县| 盐山县| 齐齐哈尔市| 潍坊市| 晋城| 宜川县| 贡嘎县| 红河县| 仁寿县| 宁陕县| 乡城县| 会理县| 和林格尔县| 新巴尔虎左旗| 分宜县| 前郭尔| 河池市| 尤溪县| 吴忠市| 滨州市| 哈密市| 清水河县|