import com.google.android.gms.tasks.Task;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.TaskCompletionSource;
import com.google.android.gms.tasks.Tasks;
Task<String> task = TaskCompletionSource<String>();
task.addOnCompleteListener(new OnCompleteListener<String>() {
@Override
public void onComplete(Task<String> task) {
if (task.isSuccessful()) {
String result = task.getResult();
} else {
Exception exception = task.getException();
}
}
});
Tasks.call(someBackgroundExecutor, new Callable<String>() {
@Override
public String call() throws Exception {
return someAsyncOperation();
}
});