房间和调试在工作管理器中不起作用?



Custom WorkerManager

class CustomWorker(
val
context: Context, workerParams: WorkerParameters
) : Worker(context, workerParams) {
override fun doWork(): Result {
val appDao = AppDatabase.getInstance(context).appDao()
appDao.deleteAllRecords().subscribeOn(Schedulers.io())
.observeOn(Schedulers.io()).subscribe(object : CompletableObserver {
override fun onComplete() {
Log.d("WorkManager", "onComplete")
}
override fun onSubscribe(d: Disposable) {
Log.d("WorkManager", "onSubscribe")
}
override fun onError(e: Throwable) {
Log.d("WorkManager", "onError")
}
})
Log.d("WorkManager", "WorkManager")
Looper.prepare()
context.toast("Hellow")
Looper.loop().
return Result.success()
}
}

调用工作管理器

fun createWorkerForClearingDb() {
val oneTimeWorkRequest =
OneTimeWorkRequest.Builder(CustomWorker::class.java)
.setInitialDelay(2L, TimeUnit.HOURS).build()
WorkManager.getInstance().beginUniqueWork(
AppConstants.Work.DELETE_TASK,
ExistingWorkPolicy.REPLACE,
oneTimeWorkRequest
).enqueue()
}

依赖

//room
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
implementation "androidx.room:room-rxjava2:$room_version"
implementation "androidx.room:room-ktx:$room_version"
//rx-java
implementation "io.reactivex.rxjava2:rxandroid:$rxandroid_version"
implementation "io.reactivex.rxjava2:rxkotlin:$rxkotlin_version"
implementation "io.reactivex.rxjava2:rxjava:$rxjava_version"   
ext.rxjava_version = "2.2.12"
ext.rxkotlin_version = "2.4.0"
ext.rxandroid_version = "2.1.1"
ext.rxjava_adapter_version = "2.4.0"
ext.room_version = '2.2.0-rc01'

但是,我能够让日志和吐司工作。

在将open添加到类后,我让它工作了。

open class CustomWorker(
val
context: Context, workerParams: WorkerParameters
) : Worker(context, workerParams) 

声音有点奇怪,但现在一切正常。

最新更新