Android MVVM 架构应用实现(2)

  1. Repository类:

实现BmobRepository类,作为HomeViewModel的数据提供方。BmobRepository类中有一个挂起函数getAllRecommendLibrary(libraryRecommendData: MutableLiveData)用来获取云数据库中的数据,函数的参数是LiveData,在获取数据后,利用setValue通知View展示数据。

class BmobRepository {

/**

  • 获取Bmob中所有推荐开源项目

*/

suspend fun getAllRecommendLibrary(libraryRecommendData: MutableLiveData) {

return withContext(Dispatchers.IO) {

val bombQuery: BmobQuery = BmobQuery()

bombQuery.findObjects(object : FindListener() {

override fun done(data: MutableList?, ex: BmobException?) {

if (ex == null) {

Timber.d(“Bmob find success”)

libraryRecommendData.value = data!!

} else {

Timber.d(“Bmob exception $ex”)

}

}

})

}

}

}

  1. Koin初始化:

Koin的初始化分为两步:

  • 定义ViewModel,告诉Kioin从哪里找到ViewModel和Repository并自动生成,这里我选择直接写在BaseApplication中,需要注意的是需要定义在最外层,即和Classt同级:

  • 在Application的onCreate()函数中初始化Koin:

class BaseApplication : Application() {

override fun onCreate() {

super.onCreate()

//初始化Bmob

Bmob.initialize(this, Constant.BMOB_APP_ID)

//初始化Timber

if (BuildConfig.DEBUG) {

Timber.plant(Timber.DebugTree())

}

//第二步:

star

你可能感兴趣的:(程序员,android,架构)