implementation 'com.google.android.gms:play-services-tasks:17.2.1' import com.google.android.gms.tasks.Task; import com.google.android.gms.tasks.TaskCompletionSource; public class TaskExecutor { private TaskCompletionSource<Void> mCompletionSource; public TaskExecutor() { mCompletionSource = new TaskCompletionSource<>(); } public void executeTasks() { Task<Void> firstTask = task1(); Task<Void> secondTask = task2(); firstTask.onSuccessTask(task -> secondTask) .addOnSuccessListener(aVoid -> { // ... mCompletionSource.setResult(null); }) .addOnFailureListener(exception -> { // ... mCompletionSource.setException(exception); }); } public Task<Void> getCompletionTask() { return mCompletionSource.getTask(); } private Task<Void> task1() { // ... return TaskCompletionSource.<Void>voidTask(); } private Task<Void> task2() { // ... return TaskCompletionSource.<Void>voidTask(); } } TaskExecutor executor = new TaskExecutor(); executor.executeTasks(); executor.getCompletionTask() .addOnSuccessListener(aVoid -> { // ... }) .addOnFailureListener(exception -> { // ... });


上一篇:
下一篇:
切换中文