本系列文章是我的項(xiàng)目“小亞”開(kāi)發(fā)完成之后的一些開(kāi)發(fā)心得,現(xiàn)與大家一起分享,如有錯(cuò)誤的地方,請(qǐng)大神指正
在Android開(kāi)發(fā)中我們經(jīng)常會(huì)把一個(gè)SplashActivity作為應(yīng)用的入口,實(shí)現(xiàn)App歡迎頁(yè),App數(shù)據(jù)初始化,App的快速響應(yīng)等功能。下面聊聊App的快速啟動(dòng)。
大家都知道:默認(rèn)情況下,Android App在點(diǎn)擊App logo到App完全啟動(dòng)這之間會(huì)有一段時(shí)間空白期,具體wait時(shí)間根據(jù)你應(yīng)用而定。那么如何做到在用戶點(diǎn)擊logo圖標(biāo)之后立即打開(kāi)App的界面而不是一段白屏或黑屏呢?你可以給SplashActivity設(shè)置background。具體做法如下:
第一步:在style.xml添加以下代碼:
<style name="AppTheme.Launcher.BG" parent="Theme.AppCompat.Light.NoActionBar.FullScreen"> <item name="android:windowBackground">@mipmap/app_launcher_bg</item> <item name="android:windowAnimationStyle">@style/fade</item> </style>
定義的AppTheme.Launcher.BG繼承自Theme.AppCompat.Light.NoActionBar.FullScreen是為了讓她實(shí)現(xiàn)全屏,其中的android:windowBackground則是你想在app啟動(dòng)時(shí)顯示的圖片了,而android:windowAnimationStyle則是SplashActivity的動(dòng)畫(huà),這個(gè)自己實(shí)現(xiàn)了。
第二步:在AndroidManifest.xml中為SplashActivity設(shè)置theme
第三步:在SplashActivity中實(shí)現(xiàn)數(shù)據(jù)初始化并跳轉(zhuǎn)到MainActivity
public class SplashActivity extends AppCompatActivity{ protected void onCreate(Bundle savedInstanceState) { setTheme(R.style.AppTheme); super.onCreate(savedInstanceState); //數(shù)據(jù)初始化 //加載廣告 //跳轉(zhuǎn)到MainActivity } }
記得在SplashActivity中調(diào)用setTheme的代碼,設(shè)置沒(méi)有背景的其它主題。不然你app的內(nèi)存會(huì)一起偏高