現(xiàn)在App通常在第一次打開的時候都會顯示“歡迎”界面她混,通過閱讀Google I/O的代碼,對該功能的實現(xiàn)原理理解如下
Google I/O 2015 App 歡迎界面調(diào)用流程
BaseActivity
作為所有Activity的父類嘱蛋,在onCreate
的時候通過調(diào)用WelcomeActivity.shouldDisplay()
來檢查WelcomeActivity是否需要顯示,如果需要顯示則啟動一個WelcomeActivity
,不需要的話直接跳過默穴。WelcomeActivity.shouldDisplay()
通過調(diào)用自己的函數(shù)getCurrentFragment()
來獲取沒有顯示過的Fragment沟绪,如果getCurrentFragment
返回值是null
則直接返回False
刮便。getCurrentFragment
通過調(diào)用getWelcomeFragment()
來獲取所有的Welcome頁面,然后對每個WelcomeFragment調(diào)用其自身的shouldDisplay
函數(shù)檢查是否需要顯示,需要則添加到顯示列表里面绽慈,不需要則跳過恨旱。每個WelcomeFragment通過調(diào)用
SettingsUltils.is...Accepted
來決定函數(shù)shouldDisplay
的值SettingUltils.is...Accepted
通過PreferenceManager.getDefaultSharedPreference.getBoolean
來獲取儲存起來的Welcome狀態(tài)在看完某個WelcomeFragment后,WlecomeFragment就通過調(diào)用
SettingsUltils.mark...Accepted
來標(biāo)識該WelcomeFragment已經(jīng)被Accepted坝疼。這樣下次被檢查的時候就不會在顯示搜贤。
簡易流程圖
BaseActivity-->WelcomeActivity.shouldDisplay?-->WelcomeActivity.getCurrentFragment=?null-->WelcomeActivity.getWelcomeFragment==?null-->WelcomeActivityContent.shouldDisplay?-->SettingsUtils.is...Accepted?
Title:App歡迎界面的實現(xiàn)邏輯
Author:Jason Hu
Created:2016-07-29, 01:31:58
Updated:2016-07-29, 01:37:40
Full URL:http://0xng.com/2016/07/29/App歡迎界面的實現(xiàn)邏輯/ **
License:** "CC BY-NC-SA 4.0" Keep Link & Author if Distribute.