Activity生命週期(一)經典面試題

2021-10-06 22:00:21 字數 462 閱讀 1369

問題:

當前棧頂活動為a,此時再啟動乙個活動a,那麼活動a會經歷那些生命週期的變化?

答案:對於這題,暫且稱已經啟動的活動a為「1號a活動」,未啟動的稱為「2號a活動」。

那麼此時經歷的生命週期分兩種情況的:

1、a活動的啟動模式為預設,也即是「standard」

順序為:1號a活動(onpause)→2號a活動(oncreate)...

2、a活動的啟動模式不為預設,可以是:「singletask」、「singletop」、「singleinstance」

順序為:1號a活動(onpause)→1號a活動(onnewintent)→1號a活動(onresume)

可以看到,如果活動為預設模式的話,會新建乙個活動,而對於另外三種啟動模式則會呼叫當前活動的onnewintent。

總結:拋開表面看本質,對於預設的啟動模式是不會復用活動的,而對於另外三種模式都會復用當前的活動。

Activity生命週期

oncreate 設定activity所使用的布局檔案 按鈕繫結 等靜態設定操作 onstart 該activity能被我們看到的時候就會呼叫onstart onresume 能夠獲得使用者焦點 onpause 啟動另外乙個activity的時候就會呼叫第乙個activity的該方法 onstop ...

activity生命週期

乙個activity的啟動順序 oncreate onstart onresume 當另乙個activity啟動時 第乙個activity onpause 第二個activity oncreate onstart onresume 第乙個activity onstop 當返回到第乙個activity...

Activity 生命週期

activities 在系統中是以 activity 棧的形式被管理的。當乙個新的 activity 啟動時,它將會被放到棧的頂部並變成 running activity 上乙個activity 會被至於它的下面,在新 activity 存在期間它都不會到前端來。乙個 activity 有四個重要的...