gradle
implementation 'com.google.android.gms:play-services-tasks:17.2.0'
import com.google.android.gms.tasks.Task;
import com.google.android.gms.tasks.TaskCompletionSource;
import com.google.android.gms.tasks.Tasks;
public class MyTask extends Task<SomeResult> {
@Override
public boolean isComplete() {
}
@Override
public boolean isSuccessful() {
}
@Override
public SomeResult getResult() {
}
@Override
public <X extends Throwable> SomeResult getResult(Class<X> exceptionType) throws X {
}
@Override
public Exception getException() {
}
@Override
public Task<SomeResult> addOnCompleteListener(OnCompleteListener<SomeResult> listener) {
}
}
MyTask task = new MyTask();
task.addOnCompleteListener(new OnCompleteListener<SomeResult>() {
@Override
public void onComplete(Task<SomeResult> completedTask) {
if (task.isSuccessful()) {
SomeResult result = completedTask.getResult();
} else {
Exception exception = completedTask.getException();
}
}
});
Tasks.callInBackground(new Callable<SomeResult>() {
@Override
public SomeResult call() throws Exception {
return someResult;
}
});