Я перехожу по этой ссылке Миграция из 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.
}
}
ListenableWorker:
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.
}
}