iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
1

App StartUp

App Startup是用來統一初始化所有第三方的Library,來提高App的啟動時間。
為了不讓每一個導入的Library調用自己的ContentProvider的初始化,所以App Startup提供了InitializationProvider來運行所有Library的初始化。

create:初始化的必要操作。
dependencies:控制應用程序在啟動時運行初始化程序的順序。

未使用App StartUp

使用App StartUp

implementation "androidx.startup:startup-runtime:1.0.0-alpha03"
class MyInitializer : Initializer<Unit> {
    override fun create(context: Context) {
        return ThridLibrary.init(context)
    }

    override fun dependencies(): MutableList<Class<out Initializer<*>>> {
        return mutableListOf()
    }
}

在AndroidManifest配置

<provider
     android:authorities="${applicationId}.androidx-startup"
     android:name="androidx.startup.InitializationProvider"
     android:exported="false"
     tools:node="merge">
         <meta-data
            android:name="fly.com.jetpacktest.MyInitializer"
            android:value="androidx.startup"/>
</provider>

上一篇
{Day16}WorkManager
下一篇
{Day18}Navigation-跳轉
系列文
Kotlin Android Jetpack 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言