app启动时 如果不做处理 会先打开一个白色背景的页面 或者黑色背景
样式特别丑
这个就是我们所说的冷启动时间
处理方法:
第一步:
在styles里面创建一个启动style
<style name="Appwelcome" parent="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>注意 需要继承自上面代码中的那个主题
第二步:
在Androidmanifest找到你的启动页,为你的启动页加上这个style
<activity android:name=".activity.MainActivity" android:theme="@style/Appwelcome"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>第三步:
public class MainActivity extends BaseActivity { @Override public void onCreate(Bundle savedInstanceState) { setTheme(R.style.AppTheme); super.onCreate(savedInstanceState); }在你启动页的oncreate里面恢复你app的默认主题
原理:在activity进程创建之前,如果你的application还未启动,则会先启动application,在每创建一个进程都会调用一次Application,所以Application的onCreate()方法可能会被调用多次),在进程的创建和初始化中,势必会消耗一些时间,在这个时间里,WindowManager会先加载APP里的主题样式里的窗口背景(windowBackground)作为预览元素,然后才去真正的加载布局