Android任务未使用Places API完成

Android任务未使用Places API完成,android,android-asynctask,task,google-places-api,Android,Android Asynctask,Task,Google Places Api,我试图从PlacesAPI文档中复制代码,但是,虽然代码似乎可以工作,但任务永远不会返回成功或完成,也不会执行该代码块。这是我的代码,但它与Google文档基本相同,只是做了一些更改 public void refreshLocation(TextView textView, PlacesClient placesClient) { // Use fields to define the data types to return. textView.setText

我试图从PlacesAPI文档中复制代码,但是,虽然代码似乎可以工作,但任务永远不会返回成功或完成,也不会执行该代码块。这是我的代码,但它与Google文档基本相同,只是做了一些更改

public void refreshLocation(TextView textView, PlacesClient placesClient) {
        // Use fields to define the data types to return.
        textView.setText("Loading...");
        List<Place.Field> placeFields = Collections.singletonList(Place.Field.NAME);

        // Use the builder to create a FindCurrentPlaceRequest.
        FindCurrentPlaceRequest request = FindCurrentPlaceRequest.newInstance(placeFields);
        textView.setText("Starting task . . .");
        Task<FindCurrentPlaceResponse> placeResponse = placesClient.findCurrentPlace(request);
        textView.setText("Task set . . .");

        placeResponse.addOnCompleteListener(task -> {
            if (task.isSuccessful()) {
                Double likelihood = 0.0;
                String name = "";
                FindCurrentPlaceResponse response = task.getResult();
                for (PlaceLikelihood placeLikelihood : response.getPlaceLikelihoods()) {
                    textView.setText("Task successful");
                    if (placeLikelihood.getLikelihood() > likelihood) {
                        likelihood = placeLikelihood.getLikelihood();
                        name = placeLikelihood.getPlace().getName();
                    }
                }
                if (likelihood != 0.0) {
                    likelihood = likelihood * 100;
                    textView.setText(String.format("You are at {}. \n {}% accurate", name, likelihood));
                } else {
                    textView.setText("Error: No Location Found.");
                }
            } else {
                Exception exception = task.getException();
                if (exception instanceof ApiException) {
                    ApiException apiException = (ApiException) exception;
                    Log.e(TAG, "Place not found: " + apiException.getStatusCode());
                }
            }
        });


    }
public void refreshLocation(TextView TextView,PlacesClient PlacesClient){
//使用字段定义要返回的数据类型。
setText(“加载…”);
List placeFields=Collections.singletonList(Place.Field.NAME);
//使用生成器创建FindCurrentPlaceRequest。
FindCurrentPlaceRequest=FindCurrentPlaceRequest.newInstance(placeFields);
setText(“开始任务…”);
Task placeResponse=placesClient.findCurrentPlace(请求);
setText(“任务集…”);
placeResponse.addOnCompleteListener(任务->{
if(task.issusccessful()){
双似然=0.0;
字符串名称=”;
FindCurrentPlaceResponse=task.getResult();
for(placelikelike:response.getplacelikelikelihoods()){
setText(“任务成功”);
if(placelikeligence.getlikeligence()>likeligence){
似然=placelikelike.getlikelike();
name=place.getPlace().getName();
}
}
如果(可能性!=0.0){
可能性=可能性*100;
textView.setText(String.format(“您在{}.\n{}%准确”,名称,可能性));
}否则{
setText(“错误:找不到位置”);
}
}否则{
Exception=task.getException();
if(ApiException的异常实例){
ApiException=(ApiException)异常;
Log.e(标记“未找到位置:”+apiException.getStatusCode());
}
}
});
}

我是否在开始这项任务时遗漏了什么?有什么方法可以启动或执行它吗?即使谷歌文档不使用AsyncTask,这是不是也可以通过AsyncTask解决的问题?

这里也一样。使用自动完成似乎也不会返回任何内容。