App欢迎界面的实现逻辑

作者: jas0nHu | 来源:发表于2016-07-29 01:43 被阅读701次

    现在App通常在第一次打开的时候都会显示“欢迎”界面,通过阅读Google I/O的代码,对该功能的实现原理理解如下

    Google I/O 2015 App 欢迎界面调用流程

    1. BaseActivity作为所有Activity的父类,在onCreate的时候通过调用WelcomeActivity.shouldDisplay()来检查WelcomeActivity是否需要显示,如果需要显示则启动一个WelcomeActivity,不需要的话直接跳过。

    2. WelcomeActivity.shouldDisplay()通过调用自己的函数getCurrentFragment()来获取没有显示过的Fragment,如果getCurrentFragment返回值是null则直接返回False

    3. getCurrentFragment通过调用getWelcomeFragment()来获取所有的Welcome页面,然后对每个WelcomeFragment调用其自身的shouldDisplay函数检查是否需要显示,需要则添加到显示列表里面,不需要则跳过。

    4. 每个WelcomeFragment通过调用SettingsUltils.is...Accepted来决定函数shouldDisplay的值

    5. SettingUltils.is...Accepted通过PreferenceManager.getDefaultSharedPreference.getBoolean来获取储存起来的Welcome状态

    6. 在看完某个WelcomeFragment后,WlecomeFragment就通过调用SettingsUltils.mark...Accepted来标识该WelcomeFragment已经被Accepted。这样下次被检查的时候就不会在显示。

    简易流程图

    BaseActivity-->WelcomeActivity.shouldDisplay?-->WelcomeActivity.getCurrentFragment=?null-->WelcomeActivity.getWelcomeFragment==?null-->WelcomeActivityContent.shouldDisplay?-->SettingsUtils.is...Accepted?

    Title:App欢迎界面的实现逻辑
    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欢迎界面的实现逻辑/ **
    License:** "CC BY-NC-SA 4.0" Keep Link & Author if Distribute.

    相关文章

      网友评论

        本文标题:App欢迎界面的实现逻辑

        本文链接:https://www.haomeiwen.com/subject/ncfzjttx.html