关于android启动页的一些优化建议

启动页也称之为闪屏页,就是在android应用第一次启动时展现的页面,值得一提的是大家不要理解为引导页(一般是应用首次安装或者更新的时候出现)

关于android启动页的一些优化建议_第1张图片
sart_jianshu.png

其实这个界面的实现很简单,代码量也很少

  • 第一步,配置AndroidManifest文件,将他作为应用入口
   
            
                
                
            
        
  • 第二步,配置xml文件,设置background或者放置一个ImageView设置scaleType都行,这里我采用最简单的方式



  • 第三步,设置代码,只需要做一个延迟跳转到登录或者是主界面就行了
public class Start1Activity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                startActivity(new Intent(StartActivity.this,MainActivity.class));
            }
        }, 3000);
    }
}

这样写启动页,是存在很大的问题的

  • 问题场景:当用户误点了你的应用图标,想赶紧撤回去,于是点击了back键,过了几秒钟我在其他的应用浏览,突然跳转到你的应用 这种用户体验相当不好吧
  • 问题分析:虽然你的activity销毁了,你的handler却还存在,虽然你已退出启动页,延迟加载的代码依然会执行
  • 优化后代码,当用户点击back键,移除handler回调
public class StartActivity extends AppCompatActivity {
    private Handler handler;
    private MyThread thread;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start);
        ButterKnife.bind(this);
        handler = new Handler();
        thread = new MyThread();
        handler.postDelayed(thread, 3000);
    }

    private class MyThread implements Runnable {

        @Override
        public void run() {
            startActivity(new Intent(StartActivity.this, MainActivity.class));
            finish();
        }

    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        handler.removeCallbacks(thread);//移除回调
    }
}

当然,这不是唯一的处理方案,类似,爱奇艺,网易新闻这种就稍微流氓一些,当用户误点以后,是不允许用户返回的,是直接禁用了back键,只能通过杀死进程的方式退出了。

针对启动页图片选择的建议

当然,这个问题不是我们开发能决定的,图一般都是设计给的,android加载大图的时候容易oom,在启动页加载大图,会导致启动短暂的黑屏,白屏,增加内存消耗,低端机上可能直接oom,使用纯背景加logo的方式,会比直接用一张大图好得多,即使真的需要用图片,也不要动不动几百K或者达到1M以上的图片,可以使用较小一点分辨率,可以通过tinypng这个网站先将图片压缩一下

欢迎转载,转正请注明原文出处

你可能感兴趣的:(关于android启动页的一些优化建议)