国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

你所不知道的Andorid啟動頁(歡迎界面)

2019-11-09 19:00:48
字體:
供稿:網(wǎng)友

序言:今天老大讓我去找UI要一張啟動頁的圖,然后給項(xiàng)目加個(gè)啟動頁,放進(jìn)去之后也沒管那么多,后來運(yùn)行項(xiàng)目的時(shí)候發(fā)現(xiàn)有點(diǎn)瑕疵,來看下圖:

可能有人要問了,這不是挺好的一個(gè)歡迎界面嗎?有啥問題,我相信看的仔細(xì)的看官會發(fā)現(xiàn)啟動之后有一段時(shí)間是空白的,即使是很短,讓人看著也不舒服,這時(shí)候可能又有人說了,那可能是你在application里面干了耗時(shí)的事才導(dǎo)致的,話說我一開始也是這樣覺得的,然后我令寫一個(gè)demo作測試,發(fā)現(xiàn)然而并不關(guān)你的application什么事兒,因?yàn)槲叶紱]有application,啟動的時(shí)候依然有這樣的問題,然后我就去對比我手機(jī)上騰訊公司和其他公司的產(chǎn)品,我發(fā)現(xiàn)他們的app大多是在你手指按下桌面圖標(biāo)的時(shí)候,先“靜止”一段時(shí)間,然后再啟動,而且中間一點(diǎn)白色的間隙也沒有,這是什么鬼,帶著疑惑,我去百度了一番,發(fā)現(xiàn)問題還真有:

后來我才之后,原來有冷熱啟動這一說:

1、冷啟動:當(dāng)啟動應(yīng)用時(shí),后臺沒有該應(yīng)用的進(jìn)程,這時(shí)系統(tǒng)會重新創(chuàng)建一個(gè)新的進(jìn)程分配給該應(yīng)用,這個(gè)啟動方式就是冷啟動。

特點(diǎn):冷啟動因?yàn)橄到y(tǒng)會重新創(chuàng)建一個(gè)新的進(jìn)程分配給它,所以會先創(chuàng)建和初始化application類,再創(chuàng)建和初始化MainActivity類(包括一系列的測量、布局、繪制),最后顯示在界面上。

2、熱啟動:當(dāng)啟動應(yīng)用時(shí),后臺已有該應(yīng)用的進(jìn)程(例:按back鍵、home鍵,應(yīng)用雖然會退出,但是該應(yīng)用的進(jìn)程是依然會保留在后臺,可進(jìn)入任務(wù)列表查看),所以在已有進(jìn)程的情況下,這種啟動會從已有的進(jìn)程中來啟動應(yīng)用,這個(gè)方式叫熱啟動。

特點(diǎn):熱啟動因?yàn)闀囊延械倪M(jìn)程中來啟動,所以熱啟動就不會走application這步了,而是直接走MainActivity(包括一系列的測量、布局、繪制),所以熱啟動的過程只需要創(chuàng)建和初始化一個(gè)MainActivity就行了,而不必創(chuàng)建和初始化application,因?yàn)橐粋€(gè)應(yīng)用從新進(jìn)程的創(chuàng)建到進(jìn)程的銷毀,application只會初始化一次。

既然上述問題不是出在application,那么肯定就是在Activity了,我是這么想的,然后我就想著是不是SetContentView的時(shí)候花了很多時(shí)間呢?然后我又測試了一遍:

@OverridePRotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); long startTime = System.currentTimeMillis(); setContentView(R.layout.activity_start); Log.d(TAG, "time===" + (System.currentTimeMillis() - startTime));}

然后打印出來的時(shí)間是:

哈,果真是setContentView導(dǎo)致的,那就很好解決了,我們不要setContentView就好了,可能還有人要問了,你不要setContentView你咋加載布局呢?別急,別忘了還有theme這個(gè)好東西啊!我們可以定義一個(gè)theme,然后給theme設(shè)置背景就好了:

<style name="StartTheme" parent="Aipmap/icon_splash</item></style>

好了,大功告成,我們來看看效果:

注:setContentView的內(nèi)部原理有興趣的同學(xué)可以自己去百度看看,看看在哪里耗時(shí)了

這是我建的一個(gè)android小白的群,各位有興趣的小白歡迎加群共同學(xué)習(xí),也歡迎各位大神進(jìn)群指導(dǎo),共勉。群號:541144061


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 凯里市| 丰城市| 武定县| 阜新市| 阳泉市| 甘谷县| 望江县| 中山市| 伊吾县| 山东| 通城县| 嫩江县| 建湖县| 邵阳市| 巧家县| 天柱县| 凉山| 改则县| 浦北县| 九台市| 门源| 汤阴县| 广水市| 奉节县| 承德市| 将乐县| 永善县| 云南省| 区。| 天门市| 四子王旗| 西华县| 石林| 当雄县| 尉氏县| 松原市| 汝州市| 邹城市| 高平市| 博野县| 铜川市|