Kotlin + Flow 實(shí)現(xiàn)Android 應(yīng)用初始化任務(wù)啟動庫_第1頁
Kotlin + Flow 實(shí)現(xiàn)Android 應(yīng)用初始化任務(wù)啟動庫_第2頁
Kotlin + Flow 實(shí)現(xiàn)Android 應(yīng)用初始化任務(wù)啟動庫_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第Kotlin+Flow實(shí)現(xiàn)Android應(yīng)用初始化任務(wù)啟動庫項(xiàng)目地址:/czy1121/ini…

repositories{

maven{url"/ezy/repo/raw/android_public/"}

dependencies{

implementation"me.reezy.init:init:0.9.0"

kapt"me.reezy.init:init-compiler:0.9.0"

//使用init-startup代替init可以利用JetpackStartup庫自動初始化

//無需在Application.onCreate調(diào)用InitManager.init()

implementation"me.reezy.init:init-startup:0.9.0"

使用

在AndroidManifest.xml的application里添加模塊

meta-dataandroid:name="modules"android:value="app"/

通過注解@Init和InitTask接口定義一個任務(wù)

@Init

classOneInit:InitTask{

overridefunexecute(app:Application){

Log.e(TAG,"thisis${javaClass.simpleName}in${Thread.currentThread().name}")

通過注解@Init的參數(shù)配置任務(wù)信息

@Target(AnnotationTarget.CLASS)

@Retention(AnnotationRetention.SOURCE)

annotationclassInit(

valprocess:String="all",//指定工作進(jìn)程名稱,main表示僅在主進(jìn)程運(yùn)行,all表示在所有進(jìn)程運(yùn)行

valbackground:Boolean=false,//是否在工作線程執(zhí)行任務(wù)

valdebugOnly:Boolean=false,//是否僅在DEBUG模式執(zhí)行任務(wù)

valcompliance:Boolean=false,//是否需要合規(guī)執(zhí)行

valdepends:ArrayString=[],//依賴的任務(wù)列表

valpriority:Short=0//

APT會按模塊收集任務(wù)信息并生成任務(wù)加載器(InitLoader_$moduleName),任務(wù)加載器用于添加任務(wù)到TaskList

classTask(

valname:String,//APT收集的任務(wù)名稱格式為"$moduleName:${clazz.simpleName}"

valbackground:Boolean=false,//是否在工作線程執(zhí)行任務(wù)

valpriority:Int=0,//進(jìn)程運(yùn)行的優(yōu)先級,值小的先執(zhí)行

valdepends:SetString=setOf(),//依賴的任務(wù)列表,同模塊只需指定"${clazz.simpleName}",跨模塊需要指定"$moduleName:${clazz.simpleName}"

valblock:()-Unit={},//待執(zhí)行的任務(wù)

valchildren:MutableSetTask=mutableSetOf()//子任務(wù)列表

核心類

TaskList負(fù)責(zé)持有和添加任務(wù)

TaskManager負(fù)責(zé)調(diào)度任務(wù),支持添加開關(guān)任務(wù)(沒有業(yè)務(wù)僅作為開關(guān),可手動觸發(fā)完成,并償試執(zhí)行其子任務(wù))

無依賴的異步任務(wù),在子線程并行執(zhí)行

無依賴的同步任務(wù),在主線程順序執(zhí)行

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論