<activity
android:name="xxxActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:launchMode="singleTask"
---launchMode為singleTask的時候,通過Intent啟到一個Activity,如果系統已經存在一個實例,系統就會將請求發送到這個實例上,但這個時候,系統就不會再調用通常情況下我們處理請求數據的onCreate方法,而是調用onNewIntent方法
android:configChanges="xxx" 詳解:
1、不設置Activity的android:configChanges時,切屏會重新調用各個生命周期,切橫屏時會執行一次,切豎屏時會執行兩次
2、設置Activity的android:configChanges="orientation"時,切屏還是會重新調用各個生命周期,切橫、豎屏時只會執行一次
3、設置Activity的android:configChanges="orientation|keyboardHidden"時,切屏不會重新調用各個生命周期,只會執行onConfigurationChanged方法
VALUE DESCRIPTION
"mcc" 國際移動用戶識別碼所屬國家代號是改變了----- sim被偵測到了,去更新mcc mcc是移動用戶所屬國家代號
"mnc" 國際移動用戶識別碼的移動網號碼是改變了------ sim被偵測到了,去更新mnc MNC是移動網號碼,最多由兩位數字組成,用於識別移動用戶所歸屬的移動通信網
"locale" 地址改變了-----用戶選擇了一個新的語言會顯示出來
"touchscreen" 觸摸屏是改變了------通常是不會發生的
"keyboard" 鍵盤發生了改變----例如用戶用了外部的鍵盤
"keyboardHidden" 鍵盤的可用性發生了改變
"navigation" 導航發生了變化-----通常也不會發生
"screenLayout" 屏幕的顯示發生了變化------不同的顯示被激活
"fontScale" 字體比例發生了變化----選擇了不同的全局字體
"uiMode" 用戶的模式發生了變化
"orientation" 屏幕方向改變了
"screenSize" 屏幕大小改變了
"smallestScreenSize" 屏幕的物理大小改變了,如:連接到一個外部的屏幕上
ref:
(7)android:configChanges="orientation|keyboardHidden|navigation"_年輕至永遠_新浪博客
http://blog.sina.com.cn/s/blog_132cad9990102w25i.html
橫豎屏切換時,禁止activity從新創建,android:configChanges="keyboardHidden|orientation" 不起作用 - Android
http://www.myexception.cn/android/1643755.html
當Activity的launchMode設為singleTask的時候,你要注意了! - 螞蟻的專欄 - 博客頻道 - CSDN.NET
http://blog.csdn.net/caiwenfeng_for_23/article/details/46918743