Skip to content

Android 启动优化

通常app启动时都有一段白色的页面很难看,通过设置一个全屏的背景页面来过渡。以此来造成一瞬间启动了应用的假象。

1 自定义Style

<!-- 启动界面优化的的背景主题 -->  
    <style name="AppTheme.Start" parent="AppTheme.NoActionBar">  
        <item name="android:theme">@android:style/Theme.NoTitleBar.Fullscreen</item>  
        <item name="android:windowBackground">@drawable/welcom_bg</item>  
        <item name="android:windowNoTitle">true</item>  
    </style>  

2 创建个过渡的Activity

这里创建了一个WelcomeActivity并在AndroidManifest.xml中做如下配置(引用刚才的style并将其设置为启动页)

<activity  
    android:name=".activity.WelcomeActivity"  
    android:label="@string/app_name"  
    android:theme="@style/AppTheme.Start">  
    <intent-filter>  
        <action android:name="android.intent.action.MAIN" />  
        <category android:name="android.intent.category.LAUNCHER" />  
    </intent-filter>  
</activity>  

同时要去掉MainActivity中的标签。

然后WelcomeActivity.java中跳转到主界面。

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_welcome);  
        toMainActivity();  
    }  
    
    private void toMainActivity() {  
        Intent intent = new Intent(getApplicationContext(), MainActivity.class);  
        startActivity(intent);  
        finish();  
    }  
    
    @Override  
    public void onBackPressed() {  
        finish();  
        super.onBackPressed();  
    }  

3 重写返回键

为了避免返回到过渡页面,在主界面重写一下返回键

    @Override  
    public void onBackPressed() {  
        Intent i = new Intent(Intent.ACTION_MAIN);  
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
        i.addCategory(Intent.CATEGORY_HOME);  
        startActivity(i);  
    }  

这里重写了返回键简单的实现Home键效果,也可以直接结束掉应用。