Android异步初始化工具
1.添加仓库
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
-
添加依赖
dependencies { implementation 'com.github.smartzheng:launcherstarter:1.0.1' }
3.自定义Task
class InitTask : Task() { override fun needWait(): Boolean {//是否需要在阻塞在await(),在Application的onCreate方法之前执行完 return true }
override fun dependsOn(): MutableList<Class<out Task>> {//等待另一个Task执行完再执行此任务初始化
return mutableListOf(InitTask1::class.java)
}
override fun runOnMainThread(): Boolean {//是否需要运行在主线程
return true
}
override fun needRunAsSoon(): Boolean {//提高优先级,也可以指定优先级大小priority
return true
}
override fun run() {
//初始化
}
}
4.在Application中
class MyApplication : Application() { override fun onCreate() { super.onCreate() LauncherStarter.init(this) val starter = LauncherStarter.createInstance()
starter.addTask(InitTask1())
.addTask(InitTask2())
.addTask(InitTask3())
//addTask()...
starter.start()
starter.await()
//LauncherStarter.createInstance()
// .run {
// addTask(InitTask1())
// .addTask(InitTask2())
// .addTask(InitTask3())
// //addTask()...
// .start()
// await()
// }
}
}