小编Sim*_*rok的帖子

如何解决已存在的程序类型:com.google.common.util.concurrent.ListenableFuture?

我正在尝试使用WorkManager 1.0.0-alpha09.我收到此错误:

Program type already present: 
com.google.common.util.concurrent.ListenableFuture

Message{kind=ERROR, text=Program type already present: 
com.google.common.util.concurrent.ListenableFuture, sources=[Unknown source 
file], tool name=Optional.of(D8)}
Run Code Online (Sandbox Code Playgroud)

如果我使用版本1.0.0-alpha08或更少.我没有得到这个错误,但我需要公共构造函数

public Worker(Context context, WorkerParameters workerParams)
Run Code Online (Sandbox Code Playgroud)

java android guava android-workmanager

46
推荐指数
3
解决办法
1万
查看次数

Android 中的 WorkManger 不止一次执行 doWork()

我正在使用 WorkManager 来安排一些任务,但问题是工作管理器在一次调用中多次执行这些任务 { doWork() }。


我在用:

'android.arch.work:work-runtime:1.0.0-alpha08'
Run Code Online (Sandbox Code Playgroud)

我试过使用 -alpha07,06,05,04。但我有同样的问题。有时甚至一次执行 5-6 次


这是代码:

public class MyWorker extends Worker {

@NonNull
@Override
public Result doWork() {

    Log.i("CountWorker","0");
    sendNotification("Notice", "A notice was sent");
    return Result.SUCCESS;

}
Run Code Online (Sandbox Code Playgroud)

这是活动

public class MyWorkerActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    final PeriodicWorkRequest pwr = new PeriodicWorkRequest
            .Builder(MyWorker.class, 16, TimeUnit.MINUTES)
            .setConstraints(Constraints.NONE)
            .build();

    WorkManager.getInstance().enqueue(pwr);

}
}
Run Code Online (Sandbox Code Playgroud)

这是 Logcat 的结果:

09-24 16:44:35.954 22779-22816/com.simran.powermanagement I/CountWorker: 0
09-24 16:44:35.970 22779-22817/com.simran.powermanagement I/CountWorker: 0
09-24 16:44:35.977 22779-22818/com.simran.powermanagement I/CountWorker: 0
Run Code Online (Sandbox Code Playgroud)

jobs android schedule android-workmanager

5
推荐指数
1
解决办法
1658
查看次数

标签 统计

android ×2

android-workmanager ×2

guava ×1

java ×1

jobs ×1

schedule ×1