app*_*krb 5 java android android-workmanager
我通过这个链接从 Firebase JobDispatcher 迁移到 WorkManager,
我发现有Worker和ListenableWorker,在哪里使用它们?使用其中任何一个有什么好处吗?
工人:
import android.content.Context;
import androidx.work.Data;
import androidx.work.ListenableWorker.Result;
import androidx.work.Worker;
import androidx.work.WorkerParameters;
class MyWorker extends Worker {
public MyWorker(@NonNull Context appContext, @NonNull WorkerParameters params) {
super(appContext, params);
}
@Override
public ListenableWorker.Result doWork() {
// Do your work here.
Data input = getInputData();
// Return a ListenableWorker.Result
Data outputData = new Data.Builder()
.putString(“Key”, “value”)
.build();
return Result.success(outputData);
}
@Override
public void onStopped() {
// Cleanup because you are being stopped.
}
}
Run Code Online (Sandbox Code Playgroud)
可听工人:
import android.content.Context;
import androidx.work.ListenableWorker;
import androidx.work.ListenableWorker.Result;
import androidx.work.WorkerParameters;
import com.google.common.util.concurrent.ListenableFuture;
class MyWorker extends ListenableWorker {
public MyWorker(@NonNull Context appContext, @NonNull WorkerParameters params) {
super(appContext, params);
}
@Override
public ListenableFuture<ListenableWorker.Result> startWork() {
// Do your work here.
Data input = getInputData();
// Return a ListenableFuture<>
}
@Override
public void onStopped() {
// Cleanup because you are being stopped.
}
}
Run Code Online (Sandbox Code Playgroud)
小智 3
Worker在后台线程上同步运行。 ListenableWorker预计将异步运行 - 它们在主线程上调用,并且您应该提供所有线程(例如将它们移动到后台线程)。 Worker更简单,并且有望成为应用程序的基本构建块。您可以在这里阅读有关它们的更多信息:
https://developer.android.com/reference/androidx/work/Worker https://developer.android.com/reference/androidx/work/ListenableWorker
如果您有兴趣,还可以查看CoroutineWorker和RxWorker。
| 归档时间: |
|
| 查看次数: |
2175 次 |
| 最近记录: |