onSaveInstanceState and onRestoreInstanceState

http://www.reibang.com/p/89e0a7533dbe

寫的很好~~ 作為參考

  1. 起因
    發(fā)現(xiàn)在手機里菜單鍵, 然后點擊叉叉, 殺了進程后, 再打開, 發(fā)現(xiàn):
    ScrollView 會自動滾回剛才離開時的位置
    TextView 會自動設置成剛才離開時的text

后來看ScrollView的實現(xiàn), 發(fā)現(xiàn)在每次殺進程后再打開進程, 會執(zhí)行onRestoreInstanceState并傳入?yún)?shù), 參數(shù)中有一項 ScrollPosition記錄的是剛才滾動的位置. 當此ScrollView在重新打開后第一次layout的時候, 會取到這個scrollPosition, 并scrollto相應的位置

TextView實現(xiàn)也是類似, 重寫了onSaveInstanceState 記錄狀態(tài), 并onRestoreInstanceState恢復狀態(tài).

  1. onSaveInstanceState在應用有可能在用戶非有意情況下銷毀的時候執(zhí)行. onPause 和onStop 執(zhí)行, 順序不一定
    onRestoreInstanceState 在應用確實銷毀了后, 再重新打開時執(zhí)行, onCreate之后, onStart之后.

  2. 順便看了Parcelable(store數(shù)據(jù)的基本格式), 大概是本來一個java的對象, 變成Parcelable的格式可以進行存儲和傳輸. 等下次你拿到還可以恢復.

  3. 重要:
    When your activity is recreated after it was previously destroyed, you can recover your saved state from the Bundle that the system passes your activity. Both the onCreate() and onRestoreInstanceState() callback methods receive the same Bundle that contains the instance state information.

Because the onCreate() method is called whether the system is creating a new instance of your activity or recreating a previous one, you must check whether the state Bundle is null before you attempt to read it. If it is null, then the system is creating a new instance of the activity, instead of restoring a previous one that was destroyed.
onCreate() 和 onRestoreInstanceState()用的是同樣的恢復數(shù)據(jù)........

  1. Activity 和 view的 onSaveInstanceState and onRestoreInstanceState
    在Activity的保存的狀態(tài)里有一項: Key=android:viewHierarchyState, content=null 保存的是view的狀態(tài). Activity 的save和restore的時候, 要通過mWindow調(diào)用 mContentParent的所有子view的save和restore.
    自己打印的格式, 大概可以看:
    Key=android:viewHierarchyState, content = bundle: {
    Key=android:views, content = array1: { null
    Key=android:views, content = array2: { {16908290=android.view.AbsSavedState$1@b1b4601, 2131623936=FragmentPager.SavedState{fb74ca6 position=0}, 2131623937=android.view.AbsSavedState$1@b1b4601, 2131623938=android.view.AbsSavedState$1@b1b4601, 2131623939=android.view.AbsSavedState$1@b1b4601, 2131623940=android.view.AbsSavedState$1@b1b4601, 2131623990=android.view.AbsSavedState$1@b1b4601, 2131623991=android.view.AbsSavedState$1@b1b4601, 2131623992=android.view.AbsSavedState$1@b1b4601, 2131623993=android.view.AbsSavedState$1@b1b4601, 2131624000=miui.widget.ScreenView$SavedState@8ca66e7, 2131624001=android.view.AbsSavedState$1@b1b4601, 2131624002=android.view.AbsSavedState$1@b1b4601, 2131624003=TextView.SavedState{7326294 start=6 end=6 text=七十二層奇樓}, 2131624004=android.view.AbsSavedState$1@b1b4601, 2131624005=android.view.AbsSavedState$1@b1b4601, 2131624006=HorizontalScrollView.SavedState{cf5413d scrollPosition=0}, 2131624020=android.view.AbsSavedState$1@b1b4601, 2131624026=android.view.AbsSavedState$1@b1b4601, 2131624030=android.view.AbsSavedState$1@b1b4601, 2131624031=android.view.AbsSavedState$1@b1b4601, 2131624032=android.view.AbsSavedState$1@b1b4601, 2131624033=android.view.AbsSavedState$1@b1b4601, 2131624034=android.view.AbsSavedState$1@b1b4601}
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末柜裸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖赞枕,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡罐脊,警方通過查閱死者的電腦和手機定嗓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來萍桌,“玉大人宵溅,你說我怎么就攤上這事∩涎祝” “怎么了恃逻?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長藕施。 經(jīng)常有香客問我寇损,道長,這世上最難降的妖魔是什么裳食? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任矛市,我火速辦了婚禮,結果婚禮上诲祸,老公的妹妹穿的比我還像新娘浊吏。我一直安慰自己,他們只是感情好救氯,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布找田。 她就那樣靜靜地躺著,像睡著了一般着憨。 火紅的嫁衣襯著肌膚如雪墩衙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天享扔,我揣著相機與錄音赏陵,去河邊找鬼描焰。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的苦掘。 我是一名探鬼主播巡球,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼藏姐,長吁一口氣:“原來是場噩夢啊……” “哼乖篷!你這毒婦竟也來了?” 一聲冷哼從身側響起秀存,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤捶码,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后或链,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惫恼,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年澳盐,在試婚紗的時候發(fā)現(xiàn)自己被綠了祈纯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片令宿。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖腕窥,靈堂內(nèi)的尸體忽然破棺而出粒没,到底是詐尸還是另有隱情,我是刑警寧澤簇爆,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布癞松,位于F島的核電站,受9級特大地震影響入蛆,放射性物質發(fā)生泄漏响蓉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一安寺、第九天 我趴在偏房一處隱蔽的房頂上張望厕妖。 院中可真熱鬧,春花似錦挑庶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至查排,卻和暖如春凳枝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背跋核。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工岖瑰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人砂代。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓蹋订,卻偏偏與公主長得像,于是被迫代替她去往敵國和親刻伊。 傳聞我的和親對象是個殘疾皇子露戒,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,098評論 25 707
  • 初識Activity: 我們都知道android中有四大組件(Activity活動,Service服務捶箱,Conte...
    wangling90閱讀 968評論 2 2
  • 葉酸 很久沒有逛街買東西了智什。 自從買了房子已來,基本和逛街購物絕緣了丁屎。 天天扣著錢過日子荠锭,真清苦。 老公也不爭氣晨川,...
    子持子持閱讀 190評論 0 0
  • 昨天寫了《如何挑選伴侶?你挑對了嗎甫贯?》也是有感而發(fā)吼鳞,因為我著實覺得我老公挑對了人。 我和老公相識于我大學畢業(yè)那年叫搁,...
    樂簡家閱讀 528評論 0 0
  • 簡介 MD5(單向散列算法)的全稱是Message-Digest Algorithm 5(信息-摘要算法),經(jīng)過M...
    帥只是表象閱讀 3,672評論 3 14