android解鎖屏時Activity生命週期的變化
最近做的忍者小雞暗殺行動遇到按鎖屏鍵再解鎖時 進入遊戲畫面會特別卡的問題,後來打日誌發現 鎖屏再解屏時生命Activity的生命週期發生異常變化引起的,下面就具體來看下。
事先在GameActivity(遊戲主介面)的 onCreate() 方法和 onDestroy()方法打上Log 。
進入GameActivity時
——————————->onCreate();
按鎖屏後 :
—————————–>onDestroy();
—————————–>onCreate();
再解鎖:
——————————>onDestroy();
——————————->onCreate();
根據日誌可以看出 鎖屏時 系統銷燬當前Activity又在後臺建立了一個Activity ,再解鎖時 系統又銷燬了後臺的Activity 再建立一個新的Activity。
起初不是很明白,後來在網上查了相關資料發現這中情況是由於橫豎屏切換引起的,橫豎屏切換時 會銷燬當前Activity 再建立 一個新的Activity(橫屏切豎屏或者豎屏切橫屏)。具體過程大家可以寫個demo 打上日誌看看 ,這裡就不細說了,至於為什麼要這樣設計還有待研究,下面就來看看這個問題的解決方法:
解決這個問題 只要在程式的配置檔案 (APPManifest.xml ,的相關Activity里加上
android:configChanges=”keyboard|keyboardHidden|orientation”
加上這句後 按鎖屏鍵 就不會銷燬當前Activity 也不會在後臺建立Activity了 ,其生命週期類似於按了Home鍵的過程。
相關文章
- Android Activity生命週期Android
- Android Activity生命週期的一點感悟Android
- Activity橫豎屏切換生命週期
- Android全面解析之Activity生命週期Android
- Android四大元件——Activity——Activity的生命週期Android元件
- Activity生命週期
- 擼擼Android的羊毛(二)----Activity生命週期Android
- View生命週期與Activity生命週期的關係View
- Activity生命週期onDestroy
- Android Activity是如何啟動的?Activity的生命週期是如何呼叫的?Android
- React生命週期的變化React
- Android | Activity和Fragment最全生命週期+發現大牛AndroidFragment
- Android入門教程之Activity(生命週期,啟動...)Android
- 重溫Android四大元件—Activity的生命週期Android元件
- Android View的生命週期詳解AndroidView
- android基礎學習-android篇day17-Activity的生命週期(轉)Android
- [譯] android應用開發者,你們真的瞭解Activity的生命週期嗎?Android
- Activity生命週期與啟動模式模式
- ()Android中的Activity建立與週期Android
- Activity A 跳轉到 Activity B,生命週期的執行過程
- 喜聞樂見之Activity生命週期
- Android生命週期元件Lifecycle使用詳解Android元件
- Activity 生命週期,如何一手掌控
- Android之各生命週期Android
- react 生命週期變遷React
- Javascript 變數生命週期JavaScript變數
- Activity生命週期回撥是如何被回撥的?
- Android Service生命週期淺析Android
- Flutter仿Android生命週期LifecycleStateFlutterAndroid
- 為什麼 bindService 能和 Activity 的生命週期聯動?
- 從幾個例項來記憶Activity的生命週期
- Android:聊聊 MVP 中 Presenter 的生命週期AndroidMVP
- 翻譯|Rust臨時變數的生命週期和“Super Let”Rust變數
- Vue的生命週期的詳解Vue
- 第一章-Activity典型情況下的生命週期
- Android 監聽生命週期工具庫Android
- Android中元件生命週期完全解析Android元件
- Android Service生命週期 Service裡面的onStartCommand()方法詳解Android
- vue生命週期詳解Vue