Mysql高並發 2021-09-19 09:53:50 阅读数:468
參考解答:在正常情况下,Activity的常用生命周期就只有如下7個
onCreate():錶示Activity正在被創建,常用來初始化工作,比如調用setContentView加載界面布局資源,初始化Activity所需數據等;
onRestart():錶示Activity正在重新啟動,一般情况下,當前Acitivty從不可見重新變為可見時,OnRestart就會被調用;
onStart():錶示Activity正在被啟動,此時Activity可見但不在前臺,還處於後臺,無法與用戶交互;
onResume():錶示Activity獲得焦點,此時Activity可見且在前臺並開始活動,這是與onStart的區別所在;
onPause():錶示Activity正在停止,此時可做一些存儲數據、停止動畫等工作,但是不能太耗時,因為這會影響到新Activity的顯示,onPause必須先執行完,新Activity的onResume才會執行;
onStop():錶示Activity即將停止,可以做一些稍微重量級的回收工作,比如注銷廣播接收器、關閉網絡連接等,同樣不能太耗時;
onDestroy():錶示Activity即將被銷毀,這是Activity生命周期中的最後一個回調,常做回收工作、資源釋放;
延伸:從整個生命周期來看,onCreate和onDestroy是配對的,分別標識著Activity的創建和銷毀,並且只可能有一次調用;
從Activity是否可見來說,onStart和onStop是配對的,這兩個方法可能被調用多次;
從Activity是否在前臺來說,onResume和onPause是配對的,這兩個方法可能被調用多次;
除了這種區別,在實際使用中沒有其他明顯區別;
參考回答:
Fragment從創建到銷毀整個生命周期中涉及到的方法依次為:onAttach()→onCreate()→ onCreateView()→onActivityCreated()→onStart()→onResume()→onPause()→onStop()→onDestroyView()→onDestroy()→onDetach(),其中和Activity有不少名稱相同作用相似的方法,而不同的方法有:
onAttach():當Fragment和Activity建立關聯時調用;
onCreateView():當fragment創建視圖調用,在onCreate之後;
onActivityCreated():當與Fragment相關聯的Activity完成onCreate()之後調用;
onDestroyView():在Fragment中的布局被移除時調用;
onDetach():當Fragment和Activity解除關聯時調用;
參考回答:Service的生命周期涉及到六大方法
onCreate():如果service沒被創建過,調用startService()後會執行onCreate()回調;如果service已處於運行中,調用startService()不會執行onCreate()方法。也就是說,onCreate()只會在第一次創建service時候調用,多次執行startService()不會重複調用onCreate(),此方法適合完成一些初始化工作;
onStartComand():服務啟動時調用,此方法適合完成一些數據加載工作,比如會在此處創建一個線程用於下載數據或播放音樂;
onBind():服務被綁定時調用;
onUnBind():服務被解綁時調用;
onDestroy():服務停止時調用;
參考回答:
普通廣播:開發者自身定義 intent的廣播(最常用),所有的廣播接收器幾乎會在同一時刻接受到此廣播信息,接受的先後順序隨機;
有序廣播:發送出去的廣播被廣播接收者按照先後順序接收,同一時刻只會有一個廣播接收器能够收到這條廣播消息,當這個廣播接收器中的邏輯執行完畢後,廣播才會繼續傳遞,且優先級(priority)高的廣播接收器會先收到廣播消息。有序廣播可以被接收器截斷使得後面的接收器無法收到它;
本地廣播:僅在自己的應用內發送接收廣播,也就是只有自己的應用能收到,數據更加安全,效率更高,但只能采用動態注册的方式;
粘性廣播:這種廣播會一直滯留,當有匹配該廣播的接收器被注册後,該接收器就會收到此條廣播;
參考回答:
ContentProvider作為四大組件之一,其主要負責存儲和共享數據。與文件存儲、SharedPreferences存儲、SQLite數據庫存儲這幾種數據存儲方法不同的是,後者保存下的數據只能被該應用程序使用,而前者可以讓不同應用程序之間進行數據共享,它還可以選擇只對哪一部分數據進行共享,從而保證程序中的隱私數據不會有泄漏風險。
最近時不時看到一些風凉話,動不動就說Android凉了,給大家幾個建議哈,首先要耐得住寂寞,不要被外界所幹擾;其次要制定長期系統的學習計劃並持之以恒;最後,注意學習方式,不要休閑式學習,很多人只看書看博客,但是從來不去動手實踐一下,那理解肯定不會太深刻,時間久了就容易忘。
面試題集可以幫助你查漏補缺,有方向有針對性的學習,為之後進大廠做准備。但是如果你僅僅是看一遍,而不去學習和深究。那麼這份面試題對你的幫助會很有限。最終還是要靠資深技術水平說話。
網上學習 Android的資料一大堆,但如果學到的知識不成體系,遇到問題時只是淺嘗輒止,不再深入研究,那麼很難做到真正的技術提昇。建議先制定學習計劃,根據學習計劃把知識點關聯起來,形成一個系統化的知識體系。
學習方向很容易規劃,但是如果只通過碎片化的學習,對自己的提昇是很慢的。
我搜集整理過這幾年字節跳動,以及騰訊,阿裏,華為,小米等公司的面試題,把面試的要求和技術點梳理成一份大而全的“ Android架構師”面試 Xmind(實際上比預期多花了不少精力),包含知識脈絡 + 分支細節。
在搭建這些技術框架的時候,還整理了系統的高級進階教程,會比自己碎片化學習效果强太多。
CodeChina開源項目:《Android學習筆記總結+移動架構視頻+大廠面試真題+項目實戰源碼》
網上學習 Android的資料一大堆,但如果學到的知識不成體系,遇到問題時只是淺嘗輒止,不再深入研究,那麼很難做到真正的技術提昇。希望這份系統化的技術體系對大家有一個方向參考。
版权声明:本文为[Mysql高並發]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/09/20210919095349578H.html