您好,登錄后才能下訂單哦!
之前在github上更新了些關于面試類的文章,含有從基礎到進階。含有BATJ.字節跳動面試專題,算法專題,高端技術專題,混合開發專題,java面試專題,Android,Java小知識,到性能優化.線程.View.OpenCV.NDK等應有盡有。還有輔之相關的視頻+學習筆記
https://github.com/xiangjiana/androids
好久沒更新了,公司電腦太卡了o(╥﹏╥)o。(把所以的知識+每日一題整理成了份983頁的PDF)
(更多完整項目下載。未完待續。源碼。圖文知識后續上傳github。)
可以點擊關于我聯系我獲取完整PDF
(VX:mm14525201314)
參考回答:
Fragment 從創建到銷毀整個生命周期中涉及到的方法依次
為:onAttach()
→onCreate()
→onCreateView()
→onActivityCreated()
→onStart()
→onR<br/>esume()
→onPause()
→onStop()
→onDestroyView()
→onDestroy()
→onDetach()
,其中和 Activity 有不少名稱相同
作用相似的方法,而不同的方法有:
onAttach()
: 當 Fragment 和 Activity 建立關聯時onCreateView()
: 當 fragment 創建視圖調用,在onActivityCreated()
: 當與 Fragment 相關聯的onCreate()
之后調用;onDestroyView()
: 在 Fragment 中的布局被移除時onDetach()
: 當 Fragment 和 Activity 解除關聯時參考回答:
相似點: 都可包含布局、可有自己的生命周期
不同點:
參考回答:
IllegalStateException
異常;getFragmentManager
、 getSupportFragmentManager
、getChildFragmentManager
之間的區別?
參考回答:
getFragmentManager()
所得到的是所在 fragment 的 父容器getChildFragmentManager()
所得到的是在getChildFragmentManager();
getFragmentManager()
來獲取FragmentManager()
對象,getSupportFragmentManager()
來FragmentPagerAdapter
與 與 FragmentStatePagerAdapter
的區別與使用場景參考回答:
相同點 : 二者都繼承 PagerAdapter
不同點 : FragmentPagerAdapter
的每個 Fragment 會持久的保存在 FragmentManager
中,只要用戶可以返回到頁面
中,它都不會被銷毀。因此適用于那些數據 相對靜態的
頁,Fragment 數量也比較少的那種;FragmentStatePagerAdapter
只保留當前頁面,當頁面不
可見時,該 Fragment 就會被消除,釋放其資源。因此適用
于那些 數據動態性較大、 占用內存較多,多 Fragment 的情
況;
參考解答: 在正常情況下,Activity 的常用生命周期就只有如下 7 個
onCreate()
: 表示 Activity 正在被創建,常用來 初始化工作,比setContentView
加載界面布局資源,初始化 Activity 所onRestart()
:表示 Activity 正在重新啟動,一般情況下,當前Acitivty
從不可見重新變為可見時,OnRestart
就會被調用;onStart()
: 表示 Activity 正在被啟動,此時 Activity 可見但不onResume()
: 表示 Activity 獲得焦點,此時 Activity 可見且在onStart
的區別所在;onPause()
: 表示 Activity 正在停止,此時可做一些 存儲數據、onPause
必須先執行完,新 Activity 的 onResume
才會onStop()
: 表示 Activity 即將停止,可以做一些稍微重量級的回onDestroy()
: 表示 Activity 即將被銷毀,這是 Activity 生命周延伸: 從 整個生命周期來看,onCreate
和 onDestroy
是配對的,分別標識著 Activity 的創建和銷毀,并且只可能有 一次調用; 從 Activity 是否可見來說,onStart
和 onStop
是配對的,這兩個方法可能被 調用多次; 從 Activity 是否在前臺來說,onResume
和 onPause
是配對的,這兩個方法可能被 調用多次; 除了這種區別,在實際使用中沒有其他明顯區別;
DialogActivity
呢 ?參考解答: Activity A 啟動另一個 Activity B,回調如下
onPause()
→ Activity B 的 onCreate()
→onStart()
→ onResume()
→ Activity A 的 onStop();
DialogActivity
,則不會回調 A 的onStop;
onSaveInstanceState()
方法的作用 ? ? 何時會被調用?參考解答:
發生條件:異常情況下( 系統配置發生改變時導致 Activity被殺死并重新創建、資源內存不足導致低優先級的 Activity 被殺死)
onSaveInstanceState
來保存當前 Activity 的狀態,onStop
之前,與 onPause
沒有既定的時序關系;onRestoreInstanceState
,onSave
(簡稱)方法所保存的 Bundle 對象 同時傳參給onRestore
(簡稱)和onCreate()
,因此可以通過這兩個方法判斷Activity 是否被重建,調用在 onStart
之后;參考回答:
singleTop
棧頂復用模式: 如果新 Activity 已經位于任務棧的棧頂,那么此 Activity 不會被重新創建,同時會回調 onNewIntent
方法,如果新 Activity 實例已經存在但不在棧頂,那么Activity 依然會被重新創建;onNewIntent
方法,此模式啟動 Activity A,系統首先會尋找是singleInstance
單實例模式: 這是一種加強的 singleTask
模參考回答:
singleTask
啟動模式,其效果和在 XML 中指定該啟動模式相同;singleTop
啟動模式,其效果和在 XML 中指定該啟動模式相同;singleTask
模式一起出現,在這種情況下,被啟動 Activity 的實例如果已經存在,那么系統就會回調onNewIntent
。如果被啟動的 Activity 采用 standard 模式啟動,那么它以及連同它之上的 Activity 都要出棧,系統會創建新的Activity 實例并放入棧中;參考回答:
Activity 創建時通過 attach()
初始化了一個 Window 也就是PhoneWindow
,一個 PhoneWindow
持有一個 DecorView
的實例,DecorView
本身是一個 FrameLayout
,繼承于 View,Activty
通過setContentView
將 xml
布局控件不斷 addView()
添加到 View 中,最終顯示到 Window 于我們交互;
參考回答:
android:configChanges
時,切屏會銷毀當前Activity,然后重新加載調用各個生命周期,切橫屏時會執行一onPause()
→onStop()
→onDestory()
→onCreate()
→onStart()
→onResume()
android:configChanges=" orientation"
,經過onConfigurationChanged
方法minSdkVersion
和 targetSdkVersion
)請查看完整的PDF版
(更多完整項目下載。未完待續。源碼。圖文知識后續上傳github。)
可以點擊關于我聯系我獲取完整PDF
(VX:mm14525201314)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。