- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试实现 Android ListenableWorker startWork()
method返回 com.google.common.util.concurrent.ListenableFuture
接口(interface),但最后一个接口(interface)不可用。我还需要 com.google.common.util.concurrent.SettableFuture
实现,这也是不可用的。我应该包含哪个模块才能使这些类型可用?
app.gradle
...
dependencies {
...
implementation "androidx.work:work-runtime-ktx:2.1.0"
}
MyWorker.kt
class SendRegistrationTokenWorker(
context: Context,
params: WorkerParameters,
) : ListenableWorker(context, params) {
override fun startWork(): ListenableFuture<Result> { ... }
}
据我了解,我想要的依赖项是 com.google.guava:listenablefuture:1.0
,但是 androidx.work:work-runtime-ktx:2.1.0
已经依赖于它,以及应用程序使用的其他库。问题是 com.google.guava:listenablefuture:1.0
解析为 com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
,它不包含所需的类型,它只是一个模拟依赖项。
我尝试添加单独的 com.google.guava:listenablefuture:1.0
依赖项,但它也解析为 com.google.guava:listenablefuture:9999.0-empty-to-avoid-与 Guava 冲突
,没有任何变化。
如果我强制 listenablefuture
版本为 1.0
,我会得到错误:
Program type already present: com.google.common.util.concurrent.ListenableFuture
android {
...
configurations.all {
resolutionStrategy {
force "com.google.guava:listenablefuture:1.0"
}
}
}
...
最佳答案
最后,我找到的最简单的解决方案是将整个 guava 依赖项添加到项目中。我不确定这是正确的方法,因为我只使用了库中的几种类型。但是,这是我正在寻找的简单解决方案。
build.gradle
dependencies {
...
implementation 'com.google.guava:guava:28.0-android'
}
我还找到了 Threading in ListenableWorker Android文档中关于ListenableWorker实现的部分,建议使用councurrent-futures CallbackToFutureAdapter,如果应用程序不使用 Guava 。我试过了,但是解决方案没有解决错误,找不到 ListenableFuture
。
关于Android WorkManager ListenableWorker 实现 : ListenableFuture interface isn't found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57307201/
我正在使用 ListenableWorker 来执行后台任务。 另外我希望操作系统知道我的服务重要性,所以我调用 setForegroundAsync(new ForegroundInfo(Work
由于我需要在 WorkManager 中异步执行工作,我需要使用 ListenableWorker ,默认情况下在主 (UI) 线程上运行。由于这项工作可能是一个很长的处理任务,可能会卡住界面,我想在
我似乎找不到停止工作任务的正确方法。我调用.set(Result.success());在我的 ResolvableFuture , 但它永远不会触发 onStopped()在我的类(class)中,
Android developer docs展示如何使用 ListenableWorker 的示例。然而,尽管已将 councurrent-futures 添加到我的项目中,但我现在看到了文档中使用的
做一点Jeopardy style Q&A这里。 我有一些工作有时需要按照 version 2.7.0 of WorkManager 中所述的加急运行。 : val constraints = Con
我通过这个链接 Migrating from Firebase JobDispatcher to WorkManager , 我发现有Worker和ListenableWorker,这两个用在什么地方
我正在尝试实现 Android ListenableWorker startWork() method返回 com.google.common.util.concurrent.ListenableFu
我是一名优秀的程序员,十分优秀!