onConfigurationChanged

閱讀時間約 2 分鐘
轉移自 LogDown 原文日期 September 16, 2014 22:06
不知道有沒有人和筆者一樣已經習慣在 Androidmanifest.xml 裡為 android:configChanges 加上一大串的 flag ,而忘記它的意義。
Activity 是很敏感的,如果沒有在 android:configChanges 裡給予任何值,那麼它很容易因為一些變化 destory ,然後 onCreate ,比如說:切換屏幕方向、改變語系;相反的,如果變化 包含於 你賦予的值,將會改呼叫 Activity 裡的 onConfigurationChanged 。
請注意,這裡說的是 包含於 ,也就是說一旦超出這個範圍,它就會 destory ,然後 onCreate 。
會在此強調,自然就是因為筆者曾經掉進這個坑。
有經驗的 Android 開發者都會對下面這行眼熟。
AndroidManifest.xml <activity ...... android:configChanges="orientation|keyboardHidden|screenSize" />
沒錯,切換屏幕方向時, Android 會改變的不只是 orientation ,還有 keyboardHidden 。
至於 screenSize ,則是 SDK 13 新增加的。
如果只有上面,網路上早有範例,筆者是不會特別提出來的,會特別寫這篇文章,是因為筆者最近在開發「切換 APP 語系(系統語系保持不變)」;這個項目並不是很少見,所以能夠參考一些前輩的經驗,但不幸的是,套用上去卻造成不停 destroy 的窘境。
在經過一番折騰之後,筆者終於想到問題可能肇因於新的 SDK ,於是改成了下面這個樣子。
AndroidManifest.xml <activity ...... android:configChanges="orientation|keyboardHidden|screenSize|locale|layoutDirection" />
在之前的舊版本,只需要 locale 而已; layoutDirection 是 SDK 17 新增加的部分,語系的變換會影響到閱讀方向( LTR, RTL )。想知道更詳細的,直接到官方網頁吧。
雖然說 Android 官方的確是越來越細心了,但是這樣一來, SDK 每更新一版,開發者們都得特別留意,是不是又有新屬性了⋯⋯。
    avatar-img
    6會員
    45內容數
    和 Kotlin 相關的系列文章。 給程式初學者的「Kotlin 學習系列」 給正在實戰的工程師「Kotlin 實戰系列」
    留言0
    查看全部
    avatar-img
    發表第一個留言支持創作者!
    Kate的沙龍 的其他內容
    轉移自 LogDown 原文日期  July 30, 2014 19:36  Gogo Monkey Run Kevin, Gogolook monkey runner     - auto-testing tool     - python monkey recorder     - co
     轉移自 LogDown 原文日期 June 04, 2014 17:47  最近才發現,開了部落格但卻好安靜的原因是:留言系統要另外裝啊!(翻桌 官方推薦的是disqus,要先註冊。 可以用社交帳號這點是方便許多,但總覺得這樣好像在賣身(份)。 不過它拿的只是你的名字和信箱,密碼還是要另外設
    轉移自 LogDown 原文日期 May 30, 2014 14:10,現今 Parse 官方 server 已關閉,僅提供 SDK 自架 Server   Parse 官網: https://parse.com/ 一般使用的是它的推播功能,這在之前已經提過,這次要介紹的是雲端資料服務。 設置相
    轉移自 LogDown 原文日期 May 30, 2014 10:14  之前介紹過用 Parse 來做 push,這次換成另一家服務廠商。 Lightspeed 官網: http://www.lightspeedmbs.com/。 它是由 arrownock 延伸而來的,專職於推播和即時訊息
    轉移自 LogDown 原文日期 May 29, 2014 13:34,現今 Parse 官方 server 已關閉,僅提供 SDK 自架 Server  Parse 官網: https://parse.com/ 它提供的不只有推播訊息,還有其他功能,例如雲端資料建置,這會在下次介紹。 SDK 和官
    轉移自 LogDown 原文日期 May 27, 2014 16:02 平時就有做筆記的習慣,再加上朋友的提議,所以決定開一個部落格來放筆記、開發心得和一些雜言。 選擇 LogDown 的理由無它,聞其在程式碼編排方面的良好支援。 首篇先來研究 LogDown : 會員制度有二,付費和免費。 新會員
    轉移自 LogDown 原文日期  July 30, 2014 19:36  Gogo Monkey Run Kevin, Gogolook monkey runner     - auto-testing tool     - python monkey recorder     - co
     轉移自 LogDown 原文日期 June 04, 2014 17:47  最近才發現,開了部落格但卻好安靜的原因是:留言系統要另外裝啊!(翻桌 官方推薦的是disqus,要先註冊。 可以用社交帳號這點是方便許多,但總覺得這樣好像在賣身(份)。 不過它拿的只是你的名字和信箱,密碼還是要另外設
    轉移自 LogDown 原文日期 May 30, 2014 14:10,現今 Parse 官方 server 已關閉,僅提供 SDK 自架 Server   Parse 官網: https://parse.com/ 一般使用的是它的推播功能,這在之前已經提過,這次要介紹的是雲端資料服務。 設置相
    轉移自 LogDown 原文日期 May 30, 2014 10:14  之前介紹過用 Parse 來做 push,這次換成另一家服務廠商。 Lightspeed 官網: http://www.lightspeedmbs.com/。 它是由 arrownock 延伸而來的,專職於推播和即時訊息
    轉移自 LogDown 原文日期 May 29, 2014 13:34,現今 Parse 官方 server 已關閉,僅提供 SDK 自架 Server  Parse 官網: https://parse.com/ 它提供的不只有推播訊息,還有其他功能,例如雲端資料建置,這會在下次介紹。 SDK 和官
    轉移自 LogDown 原文日期 May 27, 2014 16:02 平時就有做筆記的習慣,再加上朋友的提議,所以決定開一個部落格來放筆記、開發心得和一些雜言。 選擇 LogDown 的理由無它,聞其在程式碼編排方面的良好支援。 首篇先來研究 LogDown : 會員制度有二,付費和免費。 新會員
    你可能也想看
    Google News 追蹤
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
    Thumbnail
    Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
    Thumbnail
    轉移自 LogDown 原文日期 September 16, 2014 22:06   不知道有沒有人和筆者一樣已經習慣在 Androidmanifest.xml 裡為 android:configChanges 加上一大串的 flag ,而忘記它的意義。   Activity 是很敏感的,如果沒有
    Thumbnail
    這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
    Thumbnail
    11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
    Thumbnail
    Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
    Thumbnail
    轉移自 LogDown 原文日期 September 16, 2014 22:06   不知道有沒有人和筆者一樣已經習慣在 Androidmanifest.xml 裡為 android:configChanges 加上一大串的 flag ,而忘記它的意義。   Activity 是很敏感的,如果沒有