AndroidAndroid开发实用技巧Let's Android

Android启动页优化,去黑屏实现秒启动

2016-08-09  本文已影响12679人  XiaLong

之前我们写了一篇文章,RxJava实践之打造酷炫启动页,然而当我们点击桌面图标启动APP时,有时会闪一下黑色背景,有时黑色背景时间还比较长,哎呀,难看死了,这个怎么办捏,别方,我们今天就来看看启动页的优化。

一、消除启动时的黑屏

点击桌面launcher图标启动APP,闪现的黑色背景其实是出现在我们看到界面第一帧之前。那我们就要想办法让这个黑色的背景变成用户喜欢看到的画面或者让它透明化。有了思路方法也就粗现了,我们有下面两种方案:

<style name="WelcomeStyle" parent="android:Theme">        
      <item name="android:windowBackground">@drawable/welcome_bg</item>   
      <item name="android:windowNoTitle">true</item>    
</style>

其中welcome_bg可以是我们APP的Logo背景。
2.在manifest文件中配置WelcomeActivity

<activity           
        android:theme="@style/WelcomeStyle" 
        android:name=".Activity.WelcomeActivity" >       
</activity>
<style 
        name="Appwelcome" 
        parent="android:Theme.Translucent.NoTitleBar.Fullscreen">
</style>

2.在manifest文件中配置WelcomeActivity

<activity           
        android:theme="@style/Appwelcome" 
        android:name=".Activity.WelcomeActivity" >       
</activity>

好了,就这么简单,现在我们来看看第二种方法的效果:

welcomepage.gif

是不是没有黑色背景闪现了呢,确实是昂。其实我们还能优化,让启动更快,请继续看。

二、启动优化,让APP秒开

main()->Application:attachBaseContext()->onCreate()->Activity:onCreate()->onStart()->onResume()

main->Activity创建的这个过程会经过一系列framework层的操作,对于系统自动执行的操作我们不易进行优化,但是,如果我们继承Application自定义了自己的Application,可以做如下优化:
1.尽量不将一些业务逻辑放于Application中;
2.不以静态变量的方式在Application中保存应用数据;
3.不要把文件、数据库的操作放在Application

@Override 
public void onBackPressed() { 
super.onBackPressed(); 
....                               //在这里取消的耗时操作
}

或者也可以流氓一些,直接在启动页Activity重写onKeyDown()方法,首先判断用户按下的是否是返回按键,若是的话则直接返回true,这样就屏蔽了返回按键的后续执行逻辑达到了禁止用户返回操作的目的,看代码

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
        if (keyCode == KeyEvent.KEYCODE_BACK) {
               return true; 
        } 
        return super.onKeyDown(keyCode, event); 
}

就酱,大家有更好的优化技巧欢迎留言交流学习。
需要完整代码可以戳这里代码传送门

上一篇下一篇

猜你喜欢

热点阅读