【Android 产品研发】--> 启动页

作者: Kevin_小飞象 | 来源:发表于2021-05-12 11:55 被阅读0次

    前言

    一个很慢的启动页很容易让用户觉得受不了,进而“逃离” App 的,所以若想产品有更好的用户体验,做一些启动页的优化是一个不错的选择。这里我们简单介绍一下我在实践中对启动页是如何优化的。

    启动页网络请求优化

    1. 我们在启动页做了什么?
    • 加载App中h5页面的url地址;
    • 加载请求用户信息;
    • 加载首页地图页面需要展示的图标;
    • 延时三秒钟跳转首页面,这时候无论是否加载到前面的网络请求信息,都会跳转到首页面。

    1. 启动页面网络请求优化的具体实践

    timer = new Timer();
                timerTask = new TimerTask() {
                    @Override
                    public void run() {
                        if (isGoToComplete) {
                            L.i("等待2s完成,取消timer任务...");
                            cancelTimer();
                            return;
                        }
                        if (isLoadStartQueryComplete && isLoadUserInfoComplete) {
                            // 已经显示过引导图
                            L.i("StartActivity中网络请求完成,执行跳转逻辑.....");
                            handler.sendEmptyMessage(eventWhat);
                            L.i("StartActivity中网络请求完成,取消timer任务...");
                            cancelTimer();
                        }
                    }
                };
                timer.schedule(timerTask, 0, 100);
    

    2. 启动页面无黑屏

    使用透明主题:

    <item name="android:windowIsTranslucent">true</item>
    

    Activity.onCreate() 之前 App 不做显示,这样用户误以为是手机慢了,这种瞒天过海的方案大家还是不要用了。

    <resources>
    
        <!-- Base application theme. -->
        <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
            <!-- Customize your theme here. -->
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</item>
            <item name="android:windowIsTranslucent">true</item>
        </style>
    
    </resources>
    

    3.主题替换

    我们在style中自定义一个样式Lancher,在其中放一张背景图片,或是广告图片之类的。

        <style name="AppTheme.Launcher" parent="AppTheme">
    <!--<item name="android:windowBackground">@color/startingwindow_bgcolor</item>-->
            <item name="android:windowBackground">@drawable/bg</item>
        </style>
    

    把这个样式设置给启动的 Activity

                <activity
                android:name=".activity.SplashActivity"
                android:screenOrientation="portrait"
                android:theme="@style/AppTheme.Launcher"
                >
    

    然后在 Activity 的 onCreate 方法,把 Activity 设置回原来的主题

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            //替换为原来的主题,在onCreate之前调用
            setTheme(R.style.AppTheme);
            super.onCreate(savedInstanceState);
        }
    

    4. 启动页面屏蔽返回按键

    一般的我们的 App 中都会在启动页面执行一些网络操作,初始化配置等,所以这时候我们是不希望用户通过按下返回按键退出 App ,因而我们需要在启动页中屏蔽返回按键,这里简单的介绍一下具体的实现:

    /**
         * startActivity屏蔽物理返回按钮
         *
         * @param keyCode
         * @param event
         * @return
         */
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_BACK) {
                return true;
            }
            return super.onKeyDown(keyCode, event);
        }
    

    相关文章

      网友评论

        本文标题:【Android 产品研发】--> 启动页

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