在Android中實作ListView的時候,
如果要customize一個畫面比較漂亮的ListView,
可能會用到Background,如下圖(圖一)
|
圖一 |
但是如果再做上下滾動的時候你會發現,背景圖片不見了!
背景會變成黑色! 且還會有點卡卡的感覺。
如下圖(圖二)。
|
圖二 |
原因在於Android在ListView 的Background會做一個Optimization的動作,
就是利用一個attributes,
android:cacheColorHintdefault值就是現在的顏色dark,
為了要關掉這個Optimization,只要把
android:cacheColorHint改成如下,
android:cacheColorHint="#00000000"這樣就不會發生上述的問題了。
每次都會有點忘記這個lifecycle,
總是只記得大概,詳細都會忘記==
然後就要自己用LOG來看甚麼情況下會進到這些狀態。
這次就乾脆整理一下記錄起來。
當activity進行換頁時,會先進入 onPause() -> onStop()
按下手機上返回按鈕時,會先進入 onPause() -> onStop() -> onDestroy()
按下手機HOME按鈕時,會先進入 onPause() -> onStop()
當先前已經按過HOME鈕,再次點APP,會進入到 onRestart()
當先前換頁,再按下返回鈕,也會進入到 onRestart()
當先前按下返回鈕,再點APP,則會進入到 onCreate()
其實GOOGLE有一張自己的流程圖拉,
只是我覺得光看流程圖,還是無法知道實際情況發生時,會進到那些狀態。
但就搭配著圖看瞜!
這篇是比較基本的,想看Activity在Memory中的流程可以看這篇,
點我點我點我