Android應用啟動黑白屏解決方案及啟動時間優化

竹_間發表於2018-01-24

黑白屏解決方案,下面兩種方案選其中一種

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

    <!--第一種方案 把一張圖片作為應用啟動背景圖-->
    <item name="windowBackground">@drawable/bg</item>
    <!--第二種方案 把背景設定為透明-->
    <item name="android:windowIsTranslucent">true</item>
</style>
複製程式碼

在application中設定一種style,所有activity將使用這一種style

  <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
        <activity
        android:name=".activity.MainActivity"
        android:launchMode="singleTask"/>

        <activity android:name=".activity.WelcomActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    </application>
複製程式碼

第一種方案缺點: 所有Activity使用同一style背景都是同一張圖片

第二種方案缺點:使用者點選應用會在桌面停留一會。

第一種方案缺點解決:設定兩個style

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    </style>
    
    <style name="AppTheme.Welcom" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@drawable/home_bg_image</item>
    <item name="android:windowFullscreen">true</item>
    </style>
複製程式碼

在啟動Activity使用有背景圖片的AppTheme.Welcom ,其他則使用AppTheme

    <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".WelcomActivity"
     android:theme="@style/AppTheme.Welcom">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".MianActivity"
     android:launchMode="singleTask"/>
</application>
複製程式碼

啟動優化,在Application的onCreate中進行延時操作,應用開啟第一個activity時間縮短了一點點。

Android應用啟動黑白屏解決方案及啟動時間優化
Android應用啟動黑白屏解決方案及啟動時間優化

相關文章